Modular robotic system and methods for configuring robotic module

ABSTRACT

Disclosed herein is a modular robotic system, and methods for configuring the robotic module. The robotic system includes a first housing comprising a first processor and a first connector, a second housing comprising a second processor and a second connector, the first connector of the first housing being connectable to the second connector of the second housing in a plurality of orientations relative to one another, where the first processor and the second processor are configured to communicate with one other when connected in any of the plurality of orientations

CROSS REFERENCE TO RELATED APPLICATIONS

This application is based on, and claims the benefit of priority to,Indian provisional application no. 2018/11047472, filed on Dec. 14,2018, the entire contents of which are incorporated herein by reference.

BACKGROUND Field

This disclosure relates generally to a modular robotic system. Moreparticularly, the present disclosure relates to robotic modules andconnectors used therewith to configure and reconfigure the roboticsystem to perform a desired task.

Description of the Related Art

Toy development has evolved from a pre-defined structured toy such as acar, doll, trucks, etc. that perform simple functions such as theplaying of sounds in dolls, performance of simple patterns of movementin cars via a remote control, etc. to the development of robotic toysconfigured to perform relatively complex tasks.

Today, robotic toys are built from toy building elements or pieces,where the building element may be programmable. Depending on a taskprogrammed, the toy building elements may perform different physicalactions partially through a function or task programmed in the buildingelement and partially by building a toy structure consisting ofinterconnected building elements of various types.

However, such robotic toys require an external central processing unitfor programming the building elements and directing its movement. Thereis a need to provide a modular robotic toy construction system havingmodules having their own micro-controller with easy to program softwareinterface and capable of being easily connected to other modules bymechanical and/or electrical connections into configurations whichfunction as a single robotic unit.

SUMMARY

According to one aspect of this disclosure, there is provided a roboticsystem. The robotic system includes a first housing comprising a firstprocessor and a first connector, a second housing (e.g., a drive motor,a function motor, sensors, a display, linkages, claw, etc.) comprising asecond processor and a second connector, the first connector of thefirst housing being connectable to the second connector of the secondhousing in a plurality of orientations relative to one another, whereinthe first processor and the second processor are configured tocommunicate with one other when connected in any of the plurality oforientations

The first connector comprises a groove; and a second connector comprisesa ridge corresponding to the groove, the ridge comprising the pluralityof electrical contacts, where the groove is configured to receive theridge and the plurality of electrical contacts in the plurality oforientations. The first connector further comprises a track elementhaving a plurality of tracks corresponding to the plurality of contactsof the second connector, where the track element is located at a firstside of the first connector and receives the plurality of the contactsof the second connector from a second side of the first connector, thesecond side being opposite to the first side.

Furthermore, according to one aspect of this disclosure, there isprovided a method for configuring a robotic module. The method includesconnecting the robotic module to a first housing, and assigning, via theprocessor, an identifier to the robotic module, wherein the identifieris configured to identify a type of the robotic module, a number of therobotic module, and/or a location of the robotic module with respect tothe first housing.

The assigning of the identifier involves assigning a first set of bitsof a plurality of bits to identify the type of the robotic module, and asecond set of bits of the plurality of bits to indicate the number theparticular component. Furthermore, the assigning of the identifier mayalso involve daisy chaining of the plurality of bits corresponding to aplurality of robotic modules connected to the first housing and/or arobotic module of the plurality of robotic modules.

Furthermore, according to one aspect of this disclosure, there isprovided a method for programming a robotic module. The method involvesselecting, via an interface, i) a predefined function to be performed bythe robotic module, or ii) an option to create a user defined functionto be performed by the robotic module, defining, via the interface,logic and parameters related to the user defined function of the roboticmodule, and storing, via a processor, the user defined function in aprocessor of a first housing, wherein the processor is configured tocontrol the robotic module based on the user-defined function when therobotic module is connected, via a joinery, to the processor, andwherein the joinery establishes an electrical connection between thefirst housing and the robotic module.

The defining the logic involves dragging and dropping of a plurality ofpre-defined functions within a programming screen on the interface, anddefining the parameters includes assigning values to variables relatedto the robotic module.

The robotic module is a drive motor or a function motor, and theparameters comprise a speed, an amount of rotation, and/or a directionof rotation of the drive motor or the function motor.

Furthermore, according to one aspect of this disclosure, there isprovided a communication protocol circuitry including a printed circuitboard including a two-wired interface to communicate information from afirst processor to a second processor when connected to the firstprocessor via a connector, where the connector establishes an electricalconnection between the first processor and the second processor.

Furthermore, according to one aspect of this disclosure, there isprovided a rotatory connector for a robotic system comprising a firstcomponent interoperably connected to a second component. The rotatoryconnector includes a first rotatable element is configured to removablycoupled to the first component of the robotic system; and a secondrotatable element configured to rotate in a desired orientation relativeto the first rotatable element and lock to the first rotatable elementin the desired orientation, where the second rotatable element removablycouples to the second component of the robotic system thereby allowingthe second component be connected to the first component in the desiredorientation.

Furthermore, according to one aspect of this disclosure, there isprovided a slidable connector for a robotic system comprising a firstcomponent interoperably connected to a second component, the slidableconnector includes a first slidable element removably couples to thefirst component of the robotic system; and a second slidable elementdisposed perpendicular to the first slidable element, the secondslidable element configured to slide to a desired position relative tothe first slidable element and lock to the second slidable element inthe desired position, where the second slidable element removablycouples to the second component of the robotic system thereby allowingthe second component be connected to the first component of the roboticsystem in the desired position.

Furthermore, According to one aspect of this disclosure, there isprovided a skin connector for a robotic toy, the skin connector includesa ridge configured to insert in a groove element of the robotic toy; andone or more snap elements formed at edges of the skin connector, the oneor more snap elements configured to be snap fit in a cavity of a shapedcover thereby giving the robotic toy a desired toy form.

Furthermore, according to one aspect of this disclosure, there isprovided an interface between two different interlocking toy systems,the interface includes a plurality of connecting elements, formed on afirst face, having a first geometric configuration compatible with oneor more pieces of a first interlocking toy system; and a joinery, formedon a second face, having a second geometric configuration compatiblewith a second interlocking toy system, the interface enabling aninteroperable connection between the first interlocking toy system andthe second interlocking system.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate one or more embodiments and,together with the description, explain these embodiments. Theaccompanying drawings have not necessarily been drawn to scale. Anyvalues dimensions illustrated in the accompanying graphs and figures arefor illustration purposes only and may or may not represent actual orpreferred values or dimensions. Where applicable, some or all featuresmay not be illustrated to assist in the description of underlyingfeatures. In the drawings:

FIGS. 1A-1F are different views of a main component according to anembodiment of this disclosure;

FIGS. 2A-2B are different views of a groove element of a joineryaccording to an embodiment of this disclosure;

FIGS. 3A-3C are different views of a ridge element of the joineryaccording to an embodiment of this disclosure;

FIGS. 4A-4B are cross-section views of the joinery according toembodiment of this disclosure;

FIGS. 5A-5F are different views of a secondary component, a drive motor,according to an embodiment of this disclosure;

FIGS. 6A-6G are different views of another secondary component, afunction motor, according to an embodiment of this disclosure;

FIGS. 7A-7C are different views of another secondary component, adisplay, according to an embodiment of this disclosure;

FIGS. 8A-8L are different views of another secondary components,sensors, according to an embodiment of this disclosure;

FIGS. 9A-9D illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form a toy caraccording to an embodiment of this disclosure;

FIGS. 10A-10C illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form a robotaccording to an embodiment of this disclosure;

FIGS. 11A-11B illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components that is furtherconnected to linkages according to an embodiment of this disclosure;

FIGS. 12A-12C illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form an excavatoraccording to an embodiment of this disclosure;

FIGS. 13A-13C illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components that is furtherconnected to a linkage, a hook, or a claw according to an embodiment ofthis disclosure;

FIGS. 14A-14F illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form a dogaccording to an embodiment of this disclosure;

FIGS. 15A-15B illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components connected to anotherset of linkages according to an embodiment of this disclosure;

FIGS. 16A-16B illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components connected to anotherset of linkages forming a pen holder (16A) and a dog's mouth (16B),respectively, according to an embodiment of this disclosure;

FIGS. 17A-17B illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form a tail (e.g.,of a dog) according to an embodiment of this disclosure;

FIGS. 18A-18C illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components further connected to aclaw according to an embodiment of this disclosure;

FIGS. 19A-19F illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form another caraccording to an embodiment of this disclosure;

FIG. 20 illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form a drillaccording to an embodiment of this disclosure;

FIG. 21 illustrate example robotic structure including the maincomponent of FIGS. 1A-1F and secondary components to form shownstructure according to an embodiment of this disclosure;

FIG. 22 is an example block diagram of a communication system betweenany secondary component and the main component according to anembodiment of this disclosure;

FIGS. 23-30 illustrate example schematics of processing circuit boards(PCB) of the main component, communication protocol, and differentsecondary components according to an embodiment of this disclosure;

FIGS. 31-32 illustrate example structure configuration and locationidentification for defining an identifier for automatically identifyinga secondary component when connected to the main component according toan embodiment of this disclosure;

FIGS. 33A and 33B are example configuration illustrating the addressingmechanisms according to an embodiment of this disclosure;

FIG. 34 is an exemplary flowchart of a method of user-definedconfiguration for a robotic module according to an embodiment of thisdisclosure;

FIG. 35 is an exemplary flowchart of a method for module configurationof a robotic module according to an embodiment of this disclosure;

FIG. 36 is an example of a programming interface (e.g., a webprogramming interface) including pre-defined coding blocks according toan embodiment of this disclosure;

FIG. 37 is an example of a programming interface (e.g., a webprogramming interface) including user-defined coding blocks according toan embodiment of this disclosure;

FIG. 38 is an example architecture of the robotic system according to anembodiment of this disclosure;

FIGS. 39A-39G, 40, 41, 42, and 43 are example screens of a buildinginterface for building a robotic structure using the robotic modulesaccording to an embodiment of this disclosure;

FIGS. 44A-44D are example screens of a gaming interface configured toguide user to play a game using the robotic structure built, forexample, according to FIGS. 39A-39G, according to an embodiment of thisdisclosure;

FIG. 44E is an example controller used for playing the game of FIGS.44A-44D, according to an embodiment of this disclosure;

FIG. 45 is an illustrative diagram of an exemplary computer systemarchitecture, in accordance with various embodiments of this disclosure;

FIG. 46 there is depicted an architecture of a mobile device, which canbe used to realize a specialized system implementing this disclosure, inaccordance with various embodiments of this disclosure.

FIG. 47 is an example robotic toy (e.g., a car) including a firstcomponent and a second component attached to the first component,according to an embodiment;

FIG. 48 is perspective view of the main component used in FIG. 47,according to an embodiment;

FIG. 49 is a perspective view of the second component (e.g., a drivemotor) used in FIG. 47, according to an embodiment;

FIG. 50A is a perspective view of a rotatable connector when viewed froma first side, according to an embodiment;

FIG. 50B is another perspective view of the rotatable connector,according to an embodiment;

FIG. 50C is a front view of the rotatable connector in an unlockedstate, according to an embodiment;

FIG. 50D is the front view of the rotatable connector in a locked state,according to an embodiment;

FIG. 50E is a side view of the rotatable connector in the unlockedstate, according to an embodiment;

FIG. 50F is the side view of the rotatable connector in the lockedstate, according to an embodiment;

FIG. 50G is an exploded view of the rotatable connector including anelectrical connector, according to an embodiment;

FIG. 50H is an exploded view of the rotatable connector omitting theelectrical connector, according to an embodiment;

FIG. 50I is a perspective view of a first rotatable element of therotatable connector, according to an embodiment;

FIG. 50J is a front view of a second rotatable element of the rotatableconnector, according to an embodiment;

FIG. 51A is an exploded view of a first variation of the rotatableconnector, according to an embodiment;

FIG. 51B is an exploded view of a second variation of the rotatableconnector, according to an embodiment;

FIG. 52A is a perspective view of a slidable connector in a firstconfiguration or a first position, according to an embodiment;

FIG. 52B is a perspective view of the slidable connector in a secondconfiguration or a second position, according to an embodiment;

FIG. 52C is a perspective view of the slidable connector in a thirdconfiguration or a third position, according to an embodiment;

FIG. 52D is a front view of a slidable connector in the firstconfiguration or the first position, according to an embodiment;

FIG. 52E is a side view of the slidable connector in the secondconfiguration or the second position, according to an embodiment;

FIG. 52F is a side view of the slidable connector in the thirdconfiguration or the third position, according to an embodiment;

FIG. 52G is an exploded view of the slidable connector when viewed froma top side, according to an embodiment;

FIG. 52H is an exploded view of the slidable connector when viewed froma bottom side, according to an embodiment;

FIG. 52I is another exploded view of the slidable connector when viewedfrom the bottom side, according to an embodiment;

FIG. 52J is a front view of the slidable connector, according to anembodiment;

FIG. 52K shows a portion of the slidable connector, according to anembodiment;

FIG. 52L is an exploded view when viewed from a bottom side of theslidable connector omitting a member, according to an embodiment;

FIG. 52M illustrates another exemplary slidable connector, according toan embodiment;

FIG. 53A is a front view of a first variation of the slidable connector,according to an embodiment;

FIG. 53B is a front view of the first variation of the slidableconnector omitting a member, according to an embodiment;

FIG. 54A is a perspective view of a skin connector when viewed from atop side, according to an embodiment;

FIG. 54B is a perspective view of the skin connector when view from abottom side, according to an embodiment;

FIG. 54C is an elevation view of the skin connector, according to anembodiment;

FIG. 54D is a perspective view of another example skin connector,according to an embodiment;

FIG. 54E is a perspective view of yet another example skin connector,according to an embodiment;

FIG. 54F is a cross-section view yet another example skin connector,according to an embodiment;

FIG. 55A is an example toy (e.g., a three-wheeler) build by coupling afirst skin to the robotic toy, according to an embodiment;

FIG. 55B is another example toy (e.g., a satellite) build by coupling asecond skin to the robotic toy, according to an embodiment.

FIG. 56A illustrates a perspective view showing a first side of aninterface (e.g., a LEGO connector) having connecting elements compatiblewith a first interlocking system, according to an embodiment.

FIG. 56B is a plan view of the interface of FIG. 56A viewed from thefirst side, according to an embodiment.

FIG. 56C illustrates a perspective view showing a second side of theinterface of FIG. 56A having a joinery compatible with a roboticcomponents (e.g., of FIG. 47) of the robotic system, according to anembodiment.

FIG. 56D illustrates a plan view of the interface of FIG. 56C viewedfrom the second side, according to an embodiment.

FIG. 57 illustrates an example interface with LEGO pieces attachedthereto, according to an embodiment.

DETAILED DESCRIPTION

The description set forth below in connection with the appended drawingsis intended as a description of various embodiments of the disclosedsubject matter and is not necessarily intended to represent the onlyembodiment(s). In certain instances, the description includes specificdetails for the purpose of providing an understanding of the disclosedembodiment(s). However, it will be apparent to those skilled in the artthat the disclosed embodiment(s) may be practiced without those specificdetails. In some instances, well-known structures and components may beshown in block diagram form in order to avoid obscuring the concepts ofthe disclosed subject matter.

Subject matter will now be described more fully hereinafter withreference to the accompanying drawings, which form a part hereof, andwhich show, by way of illustration, specific example embodiments.Subject matter may, however, be embodied in a variety of different formsand, therefore, covered or claimed subject matter is intended to beconstrued as not being limited to any example embodiments set forthherein. Example embodiments are provided merely to be illustrative.Likewise, a reasonably broad scope for claimed or covered subject matteris intended. Among other things, for example, subject matter may beembodied as methods, devices, components, or systems. Accordingly,embodiments may, for example, take the form of hardware, software,firmware or any combination thereof (other than software per se). Thefollowing detailed description is, therefore, not intended to be takenin a limiting sense.

Throughout the specification and claims, terms may have nuanced meaningssuggested or implied in context beyond an explicitly stated meaning.Likewise, the phrase “in one embodiment” as used herein does notnecessarily refer to the same embodiment and the phrase “in anotherembodiment” as used herein does not necessarily refer to a differentembodiment. It is intended, for example, that claimed subject matterinclude combinations of example embodiments in whole or in part.

In general, terminology may be understood at least in part from usage incontext. For example, terms, such as “and”, “or”, or “and/or,” as usedherein may include a variety of meanings that may depend at least inpart upon the context in which such terms are used. Typically, “or” ifused to associate a list, such as A, B or C, is intended to mean A, B,and C, here used in the inclusive sense, as well as A, B or C, here usedin the exclusive sense. In addition, the term “one or more” as usedherein, depending at least in part upon context, may be used to describeany feature, structure, or characteristic in a singular sense or may beused to describe combinations of features, structures or characteristicsin a plural sense. Similarly, terms, such as “a,” “an,” or “the,” again,may be understood to convey a singular usage or to convey a pluralusage, depending at least in part upon context. In addition, the term“based on” may be understood as not necessarily intended to convey anexclusive set of factors and may, instead, allow for existence ofadditional factors not necessarily expressly described, again, dependingat least in part on context.

It is to be understood that terms such as “left,” “right,” “top,”“bottom,” “front,” “rear,” “side,” “height,” “length,” “width,” “upper,”“lower,” “interior,” “exterior,” “inner,” “outer,” and the like that maybe used herein merely describe points of reference and do notnecessarily limit embodiments of the present disclosure to anyparticular orientation or configuration. Furthermore, terms such as“first,” “second,” “third,” etc., merely identify one of a number ofportions, components, steps, operations, functions, and/or points ofreference as disclosed herein, and likewise do not necessarily limitembodiments of the present disclosure to any particular configuration ororientation, or any requirement that each number must be included.

A modular robotic system comprises of robotic modules, which can bedisconnected and reconnected in various arrangements to form differentconfigurations while enabling new functionalities specific to aparticular configuration. As a result, multiple possible robotconfigurations or structures may be obtained from the same number ofrobotic modules. For example, a robot structure (e.g., a car, an animal,a mechanical tool or apparatus, etc.) can be built by interconnecting acertain number of modules to form a desired structure (e.g., car withfour wheels) and programming desired functionality (e.g., steer, moveforwards/backwards, etc.) to activate the desired robotic structure toperform a desired task (e.g., driving from a first location to a secondlocation while steering along a desired path or steering aroundobstructions).

The term “robotic system” used herein refers to a system comprisingseveral components (e.g., mechanical, electrical/electronic, software,etc.) related to a robotic module or a set of robotic modules. Forexample, the robotic system comprises a set of robotic modules, userinterfaces used to implement or activate functionalities related to therobotic modules, any programs or configurations build using the roboticmodules and the user interface, a web programming interface used to codea particular function to be performed related to a robotic module, auser-defined configuration of the robotic modules, or any other tools,programming interface, etc. relating to the robotic modules of thepresent disclosure and/or interacting with the robotic modules. Anexample robotic system architecture is illustrated in FIG. 38, whichshow different elements of the robotic system including communication,robotic module, external devices that interact with the robotic module,etc.

Furthermore, the robotic structure's physical actions may be conditionedby the interaction of the robotic structure with its surroundings, andthe robotic structure may be programmed to respond to sensor inputs,such as physical contact with an object or to light, sound, color, andto change its behavior on the basis of the sensor inputs.

In an embodiment, such modular robotic system comprising a plurality ofprogrammable robotic modules may be used to build toys and for educationpurposes to caters to children of a younger age or adults. In anembodiment, toys, games using toys, etc. can be build using the roboticmodules to teach and inculcate basic knowledge of how to design systemsfor modern world. As mentioned earlier, the robotic system is modularsystem that enables manipulation of different structures to createdifferent shapes and are programmable in multiple ways (e.g., viacomputer, phone or an interface). The robotic modules, as describedherein, are easy to assemble, enable self-learning, and intuitive innature to build a desired robotic structure or toy.

According to the present disclosure, the robotic modules or the roboticstructure built therefrom may be configured via different interfaces, asdescribed herein, each interface configured to work independently tocontrol any unique creation, for example, by a child. Thus, the roboticsystem is designed to enhance the logical abilities, creativity andprogramming skills of a young child or adults.

In a preferred embodiment, a target age group is mostly young children.So, it is desired to provide them age appropriate curriculum andmanipulatives. A child's world and environment, at the ages of 3 to 10years (or higher) is dominated by blocks (e.g., made of wood orplastic), colorful toys (e.g., made of wood or plastic) and books. Assuch, the robotic modules and any tangible interface may be made ofplastic and/or wood with limited to no apparent electronics on itssurface to ensure that the child does not feel intimidated by theinterface but feels welcomed to use the interface. The tangibleinterface refers to a software interface with which a user can interactto program a particular function of a robotic module. The tangibleinterface also ensures that the child focuses on the task at hand anddoes not get distracted by other screen based applications such ascommonly available on a phone, tablets or computers. Furthermore,consistency is be maintained across the different devices (e.g.,tangible screen, phone/tablet and computer) so that when the childrenmove from one to another device they do not get confused.

Thus, the robotic system described herein provides several advantagesincluding, but not limited to, configuration and reconfiguration of arobotic structure with ease using the robotic modules, model real-worldbehaviors, and teach basic principles of coding such as logic,troubleshooting and function flows without having a prior understandingof a coding language. In an embodiment, advanced users can learn thebasics of programming language and logic, and troubleshooting logic, andfurther code user-specific functions as they build more complex roboticstructures. Hence, as users advance, they can apply these computationalthinking skills to traditional programming, for example, in Cprogramming language.

In the present disclosure the terms “robotic module,” “module,”“programmable module,” and “block,” may be used interchangeably to referto a main component or a secondary component of the robotic system orthe robotic toy. The terms “robotic system,” “robotic toy,” and “roboticconfiguration,” may be used to refer to any device, apparatus or a toycomprising cooperating parts configured using robotic modules accordingto the present disclosure.

According to the present disclosure, a robotic structure is built byinterconnecting, via a joinery, cooperating robotic modules. The joinerycomprises a first connector (also referred as a groove element) with acavity or groove and a second connector (also referred as a ridgeelement) having a projecting portion that can be received in the cavityor groove. The joinery (e.g., comprising the first connector and thesecond connector) allows interconnection between two modules in multipleorientations. In addition, the joinery is configured to easily connectand disconnect cooperating modules, for example, via a snap action. Thejoinery also includes a locking element, which locks the cooperatingmodules when connected and easily unlocks upon applying force whiledisconnecting the modules. The joinery also includes electrical contactpoints such as pogo pins that establish an electrical connection betweencooperating parts thereby enabling communication of signals such assensor inputs, control commands etc. between the cooperating modules.

In an embodiment, the joinery comprises an X-shaped portions (e.g., inFIGS. 2A-2B, 3, and 4A-4B) that allows four different orientationsbetween two modules connected to each other. The two modules may be afirst housing (interchangeably referred as a main component for betterreadability) comprising the first connector (e.g., having an X-shapedgroove) and a second housing (interchangeably referred as a secondarycomponent for better readability) comprising the second connector (e.g.,having an X-shaped ridge). For example, the four orientations of thesecond housing or a secondary component (e.g., a function motor 300 inFIGS. 6A-6G) correspond to connecting the secondary component's bottomside, top side, right side, or left side to a side of the first housingsuch as a main component 100 (e.g., in FIG. 1A). Thus, the joineryprovides flexibility in orienting a component relative to anothercomponent to give desired shape or structure to the robotic toy. Itshould be noted that the X-shapes of the joinery are only exemplary anddoes not limit the scope of the present disclosure. Any other geometricshapes (e.g., pentagon, hexagon, etc.) may be configured to form thejoinery. As an example, in the present disclosure, the X-shaped joineryis used to explain the concepts and function of the robotic modules andtheir interactions, how the robotic modules should be attached anddetached to build a robotic structure, etc.

According to an embodiment, the X-shaped design of the joinery also hasa metaphorical usage. For example, usage of alphabet X as a variable inalgebra or even in common terminology. In a robotic configuration, onecan attach any kind of sensor or a motor module at such X locationthereby giving an early association to children that X means a positionwhere different options can be placed.

Now, the disclosure describes in detail an exemplary joinery structureand different robotic modules that can be configured to form a desiredrobotic configuration that are enabled (e.g., via programing desiredfunction within a processor of a robotic module) to perform a desiredtask. For example, a robotic configuration comprises cooperating roboticmodules, where a robotic module is the main component 100 (discussedwith respect to FIGS. 1A-1E) and another of the cooperating roboticmodules is the secondary component (e.g., 200, 300, 400, and 800 inFIGS. 5-8, respectively) connected via a joinery 900 (in FIGS. 4A and4B). The joinery 900 is configured to connect the secondary component(e.g., a drive motor in FIG. 5A-5F) in a desired orientation relative tothe main component 100 (in FIG. 1A-1E). Furthermore, a processor 10(interchangeably referred as a first processor 10) may be housed in themain component 100, the first processor 10 is configured to communicatewith a second processor of the secondary component via the joinery 900.The joinery 900 comprises a plurality of electrical contacts 954 toestablish an electrical connection between the first processor 10 andthe second processor (e.g., PCBs in FIGS. 25-30) of the secondarycomponent of the cooperating parts.

Referring to the cross-section of the joinery 900 in FIGS. 4A-4B, thejoinery 900 comprises a first connector 910 (interchangeably referred asa groove element 910) having a portion (e.g., a cavity or an X-shapedcavity) configured to receive a portion (e.g., a projection or aX-shaped projection) of a second connector 950 (interchangeably referredas a ridge element 950). Further, the groove element 910 and the ridgeelement 950 are electrically connected to each other via a track element980 and the electrical contacts 954 passing through the ridge element950.

FIGS. 2A-2B illustrate the groove element 910 of the joinery 900. Thegroove element 910 comprises a groove 912 (also referred as a cavity912). The groove 912 is a cavity or a depressed portion of the grooveelement 910 that is formed relative to an outer surface 911 (i.e., asurface facing at an outer side as shown in FIG. 2A) of the grooveelement 910. The groove 912 has a plurality of holes (not illustrated)or an opening at a bottom of the cavity allowing access from an outersurface 911 to an inner side of the grove element 910. The groove 912 isconfigured to receive the ridge 952 and the plurality of electricalcontacts 954 in a plurality of orientations. In an embodiment, thegroove 912 is configured to receive the plurality of contacts 954 suchthat the contacts 954 passes through the opening or the plurality ofholes of the groove 912 allowing contact with a track element 980 placedat an inner side, for example, as illustrated in cross-section view ofjoinery 900 in FIGS. 4A and 4B.

The shape of the groove 912 is such it can receive the ridge element 950(or the component connected thereto) in a plurality of orientationsrelative to the outer surface 911 of the groove element 910 (or thecomponent connected thereto). A total number of the plurality oforientations depends on the shape of groove 912. For example, the groove912 can be shaped as a “minus” sign, “plus” sign, “X”, etc. Accordingly,the groove 912 may receive the ridge element 950 (or the componentconnected thereto) in two, three, four, five, six, etc. differentorientations depending on the shape of the groove 912.

In an embodiment, an orientation may be defined as an angular positionabout the axis of the groove element 910 or with respect to faces of arobotic module comprising the groove element 910 and/or the ridgeelement 950. For example, when the plurality of orientations are definedas angular positions about the axis (e.g., perpendicular to the outersurface 911) of the groove element 910, the angular positions can be 0°,90°, 270°, and 360°, or 30°, 120°, 210°, and 300°, or any other desiredangular position. When the plurality of orientations are defined withrespect to a face of the robotic module, the face may be a top face, abottom face, a front face, a side face, etc. defined based on viewingdirection of a user.

A body of the groove element 910 may be of any desired shape as well. Inan embodiment, the desired body depends on a housing or shape of therobotic module within which the groove element 910 may be incorporated.For example, the groove element 910 can be configured to have arectangular or square-type body (as shown in FIGS. 2A and 2B), circularbody, ovular body, etc. or a combination thereof (e.g., square body anda circular base such as 910 shown in FIG. 5F). The body of the grooveelement 910 may include fastening aspects or attaching means such asholes, threaded holes, etc. to enable fastening of the groove element910 within a particular robotic module (e.g., the main component 100 inFIG. 1A-1F). For example, in a square body type 920D in FIG. 1, fourhole may be formed at four corners of the groove element 910D (in FIG.1A).

Furthermore, the body of the groove element 910 may be configured toinclude one or more locking elements that allows to easily attach andremove, for example, via a snap action, a robotic module. For example,the one or more locking elements may be a cantilever type having aprofiled shape, where the locking takes place due to a spring action ofthe cantilever when force is applied at an open end (e.g., at theprofile shape) of the cantilever. The profile shape is such that whenattaching by pressing a robotic module, the attaching force causes thecantilever to depresses, and the when removing the robotic module, asliding out or pull out motion also causes the cantilever depress andseparate two connected robotic modules.

In an embodiment, the square body type may include four locking elements915 as shown in FIGS. 2A and 2B. However, the position and number oflocking elements 915 is not limited to the shown example of the element910. Based on the body type of the groove element 910 and/or the housingof a robotic element, different locking elements configuration of thegroove element 910 is possible.

In addition, FIGS. 2A and 2B, also illustrates the track element 980attached at an inner side or under side of the groove element 910. Theinner side refers to a side opposite to the surface 911 or a sidetowards which the cavity 912 extends. The inner side and the outer sidesare also marked in FIGS. 4A and 4B for clarity. In an embodiment, thetrack element 980 includes a plurality of tracks 982 made ofelectrically conducting material such as a metal. The tracks 982 areseparated from each other. The location and a number of the tracks 982correspond to the plurality of electrical contacts 954. In anembodiment, six tracks are formed on a substrate of the tracking element980. The tracking element 980 can be further connected to anotherelectronic circuit to send and receive signals via the establishedelectrical connection between the tracks 982 and the electrical contacts954. For example, the signal can be signals from a sensor (e.g., color,touch, IR, LDR, etc.), the signals can be command signals sent by theprocessor of the main component 100, or other signals related toactuating, receiving data, communicating data, establishing wirelesslinks, etc. within the desired robotic system configuration.

Thus, when the groove elements 910 is connected to the ridge element 980via the track elements 980 and the electrical contacts 954, the joinery900 enables actuation of the robotic modules in cooperation with eachother (e.g., used in a toy) to perform a desired functionality or atask.

As mentioned earlier, the ridge element 950 cooperates with the grooveelement 910 to form the joinery 900. Exemplary structure of the ridgeelement 950 is shown in FIG. 3. The ridge element 950 comprises theridge 952 (also referred as a projecting portion 952). The ridge 952 isa projecting portion or a protruding portion projecting outward, forexample, towards the outer surface 951 (i.e., a surface facing at anouter side as shown in FIG. 3A) of the ridge element 950. In anembodiment, the ridge 952 is formed in a pocket 953 formed on the outersurface 951 extending inward to a certain depth, as shown in FIG. 3A. Inan embodiment, the ridge 952 is formed inside the pocket 953 such that aheight (e.g., t_(r) in FIG. 4A) of the ridge 952 is less than or equalto the depth (e.g., t_(re) in FIG. 4A) of the pocket 953. However, theridge 952 location, dimensions, or shape is not limited to that shown inFIG. 3A. In an example, the ridge 952 may extend outward from the outersurface 951. In another example, the ridge 952 may be formed on theouter surface 951 with no pocket 953.

Furthermore, the ridge 952 has a plurality of holes (see FIG. 3B) foraccommodating the plurality of electrical contacts 954 (e.g., pogopins). In an embodiment, the holes (in FIG. 3B) are arranged linearly onthe surface of the ridge 952. In an embodiment, the holes may beequidistant from each adjacent hole. In the example shown in FIG. 3B,the ridge 952 includes six holes corresponding to six pogo pins 954 inFIG. 3A. When assembled with the groove element 910, as shown in FIGS.4A and 4B, the groove 912 receives the plurality of contacts 954 andmakes contact with the track element 980 placed at the inner side of thegroove element 910.

The ridge 952 has a shape corresponding to the shape of the groove 912so that the ridge 952 fit in the groove 912 in a desired orientation ofthe plurality of orientations. Similar to the groove element 910, theplurality of orientation of the ridge 950 is dependent on the shape ofthe ridge 952. For example, the ridge 952 can be a “minus” sign, “plus”sign, “X,” etc. Accordingly, the ridge element 950 (or the componentconnected thereto) can be oriented in two, three, four, five, six, etc.different orientations within the groove 912. In the present disclosure,as an example in FIG. 3A-3C, the ridge 950 is an X-shaped protrudingportion that projects outward relative to the outer surface 951 or aface of the secondary component (e.g., 200 in FIG. 5A).

The orientation of the ridge 950 may be defined as an angular positionabout the axis (e.g., perpendicular to the outer surface 951) of theridge element 950 (or the groove element 910) or with respect to facesof a robotic module comprising the ridge element 910 and/or the ridgeelement 950. For example, when the plurality of orientations are definedas angular positions about the axis of the ridge element 950, theangular positions can be 0°, 90°, 270°, and 360°, or 30°, 120°, 210°,and 300°, or any other desired angular position. When the plurality oforientations are defined with respect to a face of the robotic module,the face may be a top face, a bottom face, a front face, a side face,etc. defined based on viewing direction of a user.

A body of the ridge element 950 may be of any desired shape as well. Inan embodiment, the desired body depends on a housing or shape of therobotic module within which the ridge element 950 may be incorporated.For example, the ridge element 950 can be configured to have arectangular or square-type body (as shown in FIGS. 3A and 3B), circularbody, ovular body, etc. or a combination thereof. The body of the ridgeelement 950 may include fastening means or attaching means such asholes, threaded holes, etc. to enable fastening of the ridge element 950within a particular robotic module (e.g., the drive motor 200 in FIGS.5A-5F). For example, in a square body type 950 in FIG. 5D, four hole maybe formed at four corners at an under side of the ridge element 950.

Furthermore, the body of the ridge element 950 may be configured toinclude one or more locking means such as slots corresponding to thelocking element 915 (in FIG. 2A) that allows to easily attach andremove, for example, via a snap action, a robotic module. For example,as shown in FIG. 3B, one or more locking slots may be along a edge ofthe pocket 953, where the slots are located at locations correspondingto the locking elements 915 of the groove element 910. When attaching,the locking element 915 of the groove element 910 snaps into the lockingslots of the ridge element 950, thereby locking the elements 910 and 950in place due to the spring action of the locking element 915 asdiscussed earlier.

In an embodiment, the square body type of the ridge element 950 includesfour locking slots (see FIGS. 3B and 3C) corresponding to the lockingelements 915 of the groove element 910. As mentioned earlier, based onthe body type, different locking elements and slot configurations arepossible.

The joinery discussed above may be included in one or more roboticmodules such as the main component 100 and the secondary component. Inexamples of the present disclosure, the groove element 910 is includedin the main component 100 and the function motor 300, while the ridgeelement is included in the secondary component (e.g., the drive motor200, the function motor 300, sensors 400-700, or the display 800). Thus,one or more secondary components can be connected to the main component100 by inserting the ridge 952 of the secondary component in to thegroove 910 of the main component 100.

FIGS. 1A-1F illustrate different views of the main component 100. Themain component includes a plurality of groove elements 900A-900Narranged along the faces of the main component. For example, threegroove elements are arranged on different face of the main element,where one groove element (e.g., 910B) is at a center of the maincomponent and two groove elements (e.g., 910A and 910C) adjacent to thecenter groove in a linear manner. Accordingly, the groove 912A, 912B,and 912C is also arranged linearly. Further, one groove element 9910Jand 910K (see FIG. 1B) can be placed on two side faces (e.g., left andright) respectively. As such, in the present example, total of 14 grooveelements are included in the main component 100. Thus, a total of 14 orless number of secondary components may be connected to the maincomponent 100.

In an embodiment, the main component 100 has a first housing having anelongated cubical shape. The first housing comprises face plates 102assembled with other components including the groove elements 910A-910N(generally referred as groove element 910) and corresponding trackelements 980, a battery 150, a chassis 120, etc. as illustrated in FIGS.1A-1F. The chassis 120 is used to support and attach different elements(e.g., 910A-910N, 980, 150, circuitry 10) of the main component 100.

In an embodiment, the main component 100 includes the first processor 10configured to control one or more attached secondary components. Forexample, the first processor 10 is connected via the track elements 980to a second processor of the secondary components such as sensors.Hence, the first processor 10 can receive signals (e.g., from sensors400-700) and based on the sensor signals and the functionalityprogrammed in the first processor 10, the first processor cancontrol/configure/communicate with the second processor of the secondarycomponents.

In an embodiment, the first processor 10 can automatically identify thetype of the secondary component such as the drive motor 200, thefunction motor 300, etc. when the secondary component is connected tothe main component 100. Such automatic identification may be achieved byan identifier (e.g., assigned according to an addressing mechanism inFIGS. 31-33) and module configuration (e.g., FIGS. 34 and 35) discussedlater in the disclosure. Furthermore, the first processor 10 may beconfigured to determine an orientation and/or a location of thesecondary component with respect to the main component 100. According toan embodiment, it may be desirable to identify the correct orientationand location of the secondary component, since the joinery 900 allowsthe secondary component to be connected in a plurality of orientationswith respect to the main component, however only a certain orientationmay be desired within a robotic structure.

As shown in FIG. 1A, example grooves 912A-912N (generally referred asgroove 912) of the main component are an X-shaped depressed portiondepressed inward relative to the surface of the face (e.g., 102) of themain component 100. Thus, the main component 100 can connect with anyrobotic module having the ridge 950 as an X-shaped protruding portionprotruding outward relative to a surface of the face of the secondarycomponent, where the X-shape of the ridge 950 corresponds to the X-shapeof the groove 912.

In the present disclosure example secondary components include, but notlimited to, one or more of, the drive motor 200 (FIGS. 5A-5F), afunction motor 300 (FIGS. 6A-6G), the display 800 (FIGS. 7A-7C), andsensors 400, 500, 600, 700 (FIGS. 8A-8C).

As shown in FIGS. 5-8, the secondary components include the ridge 950having the plurality of electrical contacts 954 in a form of pins (e.g.,pogo pins) projecting outward from the X-shaped protruding portion. Inthe examples shown, a number of pins 954 is six that are arrangedlinearly with an equidistance between each adjacent pins. Further, toaccommodate the six pins 950, the groove 912 of the main component 100includes a cut-out or a plurality of holes at the bottom of the X-shapedcavity configured to receive the plurality of electrical contacts 954through the ridge 950.

As shown in FIG. 1A, the groove 912 is formed within a step portion 104relative the face of the main component 100. The step portion 104 is abody of the groove element 910, as mentioned earlier (e.g., in FIGS. 2Aand 2B), that projects outward from the face of the main component 100.Corresponding to the groove 912, as shown in FIGS. 5-8, the ridge 950 isformed within a pocket 953 on a face of the secondary component (e.g.,200-800). The pocket is a depressed portion with respect to a face ofthe secondary component. As mentioned earlier, a height of the ridge 950is less than a depth of the pocket 953 such that the ridge 950 does notproject out relative to the surface of the face of the secondarycomponent. In an embodiment, the pocket 953 is configured to receive thestep portion 104 (e.g., a portion projecting from the face of the maincomponent in FIG. 1A) of the main component 100. Thus, in an embodiment,the depth and shape of the pocket 953 of the ridge element 950 may bedefined with respect to the size and shape of the step portion 104and/or depth of groove (e.g., t_(g) in FIG. 4A) or thickness (e.g.,t_(ge) in FIG. 4A) of the groove element 910. For example, a height ofthe step portion 104 of the main component 100 is less than the depth ofthe pocket 953 of the secondary component (e.g., 200).

Furthermore, a depth of the groove 912 of the main component 100 may beapproximately the same as the height of the ridge 950 of the secondarycomponent, so that when the groove 912 receives the ridge 950 of thesecondary component, the face (e.g., 102) of the main component 100 anda face of the secondary component touch each other. However, the presentdisclosure is not limited to such configuration. A person skilled in theart can determine appropriate dimension of the pocket 953, the step 104,the groove 912 and the ridge 952 such that the cooperating component(e.g., 100 and 200), more particularly faces at the joinery 900, may ormay not be touching each other or flushed to each other.

In an embodiment, the secondary component may be the drive motor 200, asillustrated in FIGS. 5A-5F. The drive motor 200 can be any componentconfigured to connect, via the joinery 900, the main component 100 toprovide propulsion or driving energy to the main component or therobotic structure in general. The drive motor 200 is an electric motorconfigured to send receive signals from the main component 100. Forexample, FIG. 27 shows a motor PCB 2700 that communicates with the maincomponent's PCB 2300 (in FIGS. 23A and 24B) via the I2C communicationprotocol related PCB 2400 (in FIG. 24). Thus, the robotic structurecomprising the drive motor 200 can be instructed to moveforward/backward/turn, etc. by controlling a speed of the drive motor200. Accordingly, a drive motor control function may be defined (e.g.,using the web programming interface in FIGS. 36-37) and stored in thememory, for example, of the processor of the main component 100.

The electric motor of the drive motor 200 may be selected based on apropulsion or driving related specification of the robotic structure tobe built. For example, the motor may have maximum speed of 150 rpm, anda torque in the range 0.5 to 1 Kg·cm. However, the motor specificationis not limited to a particular speed or torque. In an embodiment, thedrive motor 200 can be powered by a battery within the main component100. However, a person skilled in the art can understand that the drivemotor 200 may have other power sources such as from power outlet,another battery housed in the drive motor 200 itself, or other secondarycomponent.

Furthermore, the drive motor 200 may be configured to include a rotationcheck mechanism to determine or measure the number of rotations of ashaft of the motor. The mechanism helps to determine whether the motorcompleted a full rotation, a quarter rotation, a half rotation, or apartial rotation. In an embodiment, a full rotation may be desired,however, the motor may only partially rotate depending on the surfaceconditions, manufacturer of the motor, type of motor, power remaining inthe battery, or a combination thereof. Thus, the mechanism ensures thata desired rotation (e.g., a full rotation) is achieved. In embodiment,the mechanism includes a slotted disc attached to the motor shaft and anIR sensor placed in the vicinity of the slotted disc. The IR sensorsends signal to, for example, the first processor 10 of the maincomponent that can further determine, based on the signal, whether theamount of rotation or speed is as desired.

The drive motor 200 includes at least one ridge element 950 accessiblefrom a first face of the drive motor as shown in FIG. 5A-5F.Furthermore, at a second face of the drive motor, the shaft of the motor250 is accessible. In an embodiment, the ridge element 250 and the shaftof the motor 250 are on opposite faces (e.g., the first face is a frontface (or a top face), and the second face is a back face (or a bottomface). However, it can be understood that the relative location of theridge element 950 and the shaft of the motor 250 is not limited to aparticular face of the drive motor 200. A person of ordinary skill inthe art may modify the accessible locations of the ridge element 950 andthe shaft of the motor 250 as desired, for example, as per the roboticstructure desired to be built. Furthermore, the number of ridge elements950 is not limited to one, and a plurality of ridge elements 950 may beincluded in the drive motor 200.

In an embodiment, the ridge element 950 connects with a counterpartgroove element 900 (e.g., included in the main component 100) therebyestablishing an electrical contact between the drive motor 200 and themain component 100, as discussed earlier with respect to the joinery 900(e.g., in FIGS. 4A and 4B).

In an embodiment, the secondary component may be the function motor 300,as illustrated in FIGS. 6A-6G. The function motor 300 can be anycomponent configured to connect, via the joinery 900, the main component100 to provide a functional movement that involve multi-planer and/ormulti joint movements configured to achieve a function. For example,biomechanics related movements such as twisting, turning, grabbing,jumping, chewing, etc., driving related movements such as steering, etc.In an embodiment, such multi-planar and/or multi joint movements may beachieved via a plurality of function motors 300 (e.g., see samplerobotic structures in FIGS. 10A-18C). In an embodiment, the functionmovement may be achieved via a linkage mechanism such a steering of awheel, barking of a dog, tail movement, etc. within the roboticstructure.

The function motor 300 is an electric motor configured to send receivesignals from the main component 100. For example, FIG. 27 shows themotor PCB that communicates with the main component's PCB via the I2Ccommunication protocol related PCB. Thus, the robotic structurecomprising the function motor 300 can be instructed to performfunctional movements by controlling a speed of the function motor 300.Accordingly, a function motor control function may be defined (e.g.,using the web programming interface in FIGS. 36-37) and stored in thememory, for example, of the main component 100.

The electric motor (e.g., 350) of the function motor 300 may be selectedbased on a functions that the robotic structure is desired to beperform. In an embodiment, the function motor may have a relativelylower speed specification and a higher torque specification compared tothe drive motor 200. For example, the motor may have maximum speed of 50rpm, and a torque in the range 1.5 to 2 Kg·cm. However, the motorspecification is not limited to a particular speed or torque.

In an embodiment, the function motor 300 can be powered by a batterywithin the main component 100. However, a person skilled in the art canunderstand that the function motor 300 may have other power sources suchas from power outlet, another battery housed in the function motor 300itself, or other secondary component.

Furthermore, similar to the drive motor 200, the function motor 300 maybe configured to include a rotation check mechanism to determine ormeasure the number of rotations of a shaft of the motor. The mechanism(e.g., comprising a slotted disc and IR sensor) helps to determinewhether the motor completed a full rotation, a quarter rotation, a halfrotation, or a partial rotation, as discussed earlier.

The function motor 300 includes at least one ridge element 950accessible from a first face of the function motor 300, as well as atleast one groove element 910 on a second face of the function motor, asshown in FIG. 6A-6F. At the second face, the shaft of the motor 350 isaccessible, via the groove element 910. In other words, a linkage oranother secondary component may be connected, via the groove element 910and the linkage moves as the motor 350 rotates. It can be understoodthat the relative location of the ridge element 950 and the shaft of themotor 350 is not limited to a particular face of the function motor 300.A person of ordinary skill in the art may modify the accessiblelocations of the ridge element 950 and the shaft of the motor 350 asdesired, for example, as per the robotic structure desired to be built.Furthermore, the number of ridge elements 950 is not limited to one, buta plurality of ridge elements 950 may be included in the function motor300, as illustrated in FIGS. 6A-6G.

In an embodiment, the ridge element 950 connects with a counterpartgroove element 900 (e.g., included in the main component 100) therebyestablishing an electrical contact between the drive motor 200 and themain component 100, as discussed earlier with respect to the joinery 900(e.g., in FIGS. 4A and 4B). When the electrical connection between themain component and the function motor 300 is established, the maincomponent can control the function motor 300 as programmed (e.g., viathe web programming interface).

In an embodiment, the secondary component may be the display 800 (FIGS.7A-7C). The display 800 includes a display screen at least on one face,and a ridge element 950, at least on one another face. The ridge element950 when connected to the groove element 910 of the main component 100forms the joinery 900 that can communicate information from the firstprocessor of the main component 100 to a second processor of the display800. For example, the first processor 10 of the main component 100 maybe configured to send a signal to display, via the second processor, amessage such as an instruction, a success message, an error message, asimile face, etc. to the user.

In an embodiment, the secondary component may be one or more of thesensors 400, 500, 600, 700 (FIGS. 8A-8C). Each of the sensors 400-700include a sensing element configured to sense a sensing characteristic(e.g., color, touch, light, etc.) from at least on one face, and a ridgeelement 950, at least on one another face. The ridge element 950 whenconnected to the groove element 910, e.g., of the main component 100forms a joinery 900. In an embodiment, the first processor 10 of themain component 100 receives any sensor signal via the joinery 900.

In an embodiment, the sensor 400 may be a color sensor 400, the sensor500 may be a touch sensor 500, the senor 600 may be an IR sensor 600,and the sensor 700 may be a Light Detection Resistor (LDR) sensor 700.The sensors are configured to send respective detected signals to, forexample, the first processor 10 of the main component 100. Based on thesensor signals, the first processor 10 may control the secondary moduleto achieve a desired task.

In an embodiment, the color sensor 400 is configured to detect color andsend signals e.g., RGB values. In an embodiment, the first processor 10is configured to analyze a red color, a green color, etc, based on whichthe secondary component may be controlled.

The touch sensor 500 is configured to detect a touch, a tactile motion,etc. and send corresponding signals to the processor 10. In anembodiment, the touch sensor may be a capacitive or a resistive typethat can detect a human touch, its location, number of touches (e.g.,double tap), etc. The touch action may be further used to control thesecondary component via the processor of the main component.

Similarly, the IR sensor 600 and the LDR sensor 700 are configured todetect respective sensing characteristic (e.g., light), and sendcorresponding signals to the processor 10 for further processing and/orcontrolling the secondary component.

In an embodiment, each of the sensors 400-700 has a different electricalcharacteristic (e.g., resistance). The unique electrical characteristicacts as an identification mechanism for automatic detection of aparticular sensor when connected, for example, to the main component.For example, based on a resistance value of a sensor, the firstprocessor 10 may automatically determine the type of connected sensor.Further, if the type of sensor is not as desired in a particular roboticstructure, or connected in an incorrect location or orientation, thenthe first processor 10 may also send an error message indicate anyissues.

FIGS. 9A-9D-21 show example robotic structures built using the roboticmodules discussed above. These robotic structures are presented by wayof examples and do not limit the present disclosure to a particularstructure. As shown, in some configurations, additional linkages or gearmechanism may be included which may be driven by one of the secondarycomponents to achieve a desired functionality.

FIG. 22-30 illustrate example schematics of processing circuit boards(PCB), each PCB including a set of electrical and electronic componentsconnected together as shown in the respective Figures. The PCBs areconfigured to enable processing of signals, controlling of the secondarycomponents, communication between different robotic modules, or otherfunctions to be performed via a processor, as discussed herein. The PCBcan be configured to include a processor (e.g., a first processor or asecond processor), which is configured to perform steps of the method orfunctions of the present teachings. Therefore, in an embodiment, the PCBmay be interchangeably be referred as the first processor or the secondprocessor depending on the component in which such PCB is included.

In an embodiment, the joinery 900 facilitates communication of signalsbetween cooperating parts of the robotic structure built using therobotic modules. In an embodiment, each of the robotic module mayinclude a particular PCB, which can communicate, via a communicationprotocol (e.g., I2C) with the main PCB of the main component 100.

Referring to FIG. 22, a communication protocol PCB 2010 refers to anyPCB that acts as an communication interface between a secondarycomponent (or the PCB's of the secondary component) and a main PCB 2020.The main PCB 2010 refers to a processing circuitry (e.g., comprising thefirst processor 10) of the main component 100. An example schematic 2300of the main PCB 2020 is illustrated in FIGS. 23A and 23B and an exampleschematic 2400 of the communication protocol PCB 2010 is illustrated inFIG. 24.

Referring back to FIG. 22, in an embodiment, the electrical contacts 954of a secondary component (e.g., the drive motor 200, the color sensor400, etc.) electrically connects to the track element 980. The trackelement 980 is further connected to the communication protocol PCB 2010.Further, the communication protocol PCB 2010 is connected to the mainPCB 2020 thereby establishing an electrical communication pathway fromthe secondary component to the main component 100 and vice-versa. Thus,the main PCB 2020 of the main component 100 can send/receive signalsfrom the secondary component via the communication protocol PCB 2010.

The communication protocol PCB 2010 enables connection of differenttypes of robotic modules having different pin/port specifications totransfer data and/or communicate with the main PCB 2020. For example,each of the secondary component may have different pin requirements suchas 3 pins for the color sensor 400, 2-pins for the drive motor 200, etc.through which the signals are transfers/received. Having different pintypes for each of the robotic modules directly on the main PCB 2020 isundesirable, as it is expensive, increases a size of the PCB, andreduces flexibility of connecting several secondary components to themain component 100. As such, only a limited number of robotic structuresmay be created. Thus, the communication protocol PCB 2010 with a fixednumber of interface may be desired. In an embodiment, the communicationprotocol PCB 2010 is based on an I2C protocol.

The I2C is a serial protocol for two-wire interface to connect deviceslike microcontrollers, EEPROMs, A/D and D/A converters, I/O interfacesand other similar peripherals in robotic modules. I2C uses two wires:SCL (serial clock) and SDA (serial data) to transfer data/controlsignals between the robotic modules (e.g., the main component 100 andthe secondary component such as a sensor 400, the drive motor 200,etc.). Thus, the communication protocol PCB 2010 is configured toreceive information from PCB of any secondary component including, butnot limited to, data, command signals, sensor signals, etc. from anyrobotic module. Further, the communication protocol PCB 2010 (see I2CPCB schematic 2400 in FIG. 24) can communicate with the main PCB 2020via two wires SCL and SDA (e.g., see main PCB schematics in FIGS. 23Aand 23B). Thus, a plurality of secondary components can be connected tothe main component 100 without adding additional pins to the main PCB.In an embodiment, the main PCB 2020 may be further configured to includethe 12C protocol.

In FIG. 23A, the main PCB schematic 2300 comprises a microcontrollersuch as Atmega2560 with a plurality of pins as shown. In an embodiment,the pins 43 and 44 are assigned for the SCL and SDA connections, whichcan send/receive signals/data to the corresponding SCL and SDA pins suchas 27 and 28 of the 12C PCB 2400 of FIG. 24. Further, the 12C PCB 2400includes additional pins to send/receive data to peripherals such as asecondary component. For example, MISO (Master In Slave Out) is a slaveline for sending data to the master, MOSI (Master Out Slave In) is amaster line for sending data to the peripherals, SCK (Serial Clock) isclock pulses which synchronize data transmission generated by themaster.

In an embodiment, the color sensor PCB 2500 (in FIG. 25) is connected tothe I2C PCB 2400 via the MISO, MOSI, and SCK pins. Thus, the colorsensor PCB 2500 sends color signal, for example, RGB values, detected bythe sensing element of the color sensor 400 to the I2C PCB 2400 throughthe MISO, MOSI, and SCK connections between the PCBs 2500 and 2400. TheRCB values are further sent, via the SCL and SDA pins/ports/wires of theI2C PCB 2400 to the main PCB 2300. This way, through the two-wiredconnection, data transfer/signals can be communicated between the colorsensor 400 and the main component 100. Thus, in embodiment, the main PCB2300 may receive sensor information without having dedicated pins forthe color sensor. Thus, main PCB 2300 receives information withoutdirectly connecting the color PCB 2500 to the main PCB 2300. Similar tothe color sensor PCB 2500, the PCBs of other sensors such as 500, 600,or 700 can configured to communicate with the main PCB 2300 of the maincomponent 100. Example PCB schematics are illustrated in Figures

In another example, the I2C PCB 2400 communicates with the motor PCB2700 (shown in FIG. 27) via MOSI and SCK. The motor PCB 2700 furtheroutputs the signal (e.g., control signal from the main PCB 2300) to themotor (e.g., motors 250 and/or 350). For example, the main PCB 2300sends via the SCL and the SDA connections, a control signal (e.g., moveforward) to I2C PCB 2400, and the I2C PCB 2300 further sends, via theMOSI and SCK connections, the control signal to the motor PCB 2700,which activates the motor (e.g., 250 or 350) from the output connectionsO1 and O2. In an embodiment, the control signal (e.g., speed, rotation,move forward, etc.) is generated based on, for example, the functionprogramed via the web programming interface,

Similarly, PCB's of the remaining secondary component may be connectedto the main PCB via the two-wired (e.g., SCL and SDA) connection of theI2C PCB.

FIGS. 31-38 illustrate an addressing mechanism for defining anidentifier for a robotic module. The identifier is configured forautomatically identifying a robotic module and configuration of therobotic modules. The addressing mechanism is a way to configure andidentify a particular robotic module of the robotic configuration. Inaddition, the addressing mechanism can be used to determine anorientation of two cooperating parts relative to each other. Forexample, orientation of the secondary component with respect to the maincomponent 100.

An I2C PCB (e.g., communicating with a particular robotic module)includes an I2C address to uniquely identify a particular roboticmodule. For example, the I2C address includes seven bits: (i) mostsignificant 3 bits to identify type of the robotic module; (ii) leastsignificant 4 bits to identify a number of the type of the roboticmodule. In an embodiment, the first two numbers may be used for initialrobotic modules provided in a toy kit; and rest numbers will be used forspares.

Accordingly, an example identifier of a robotic module includes, forexample, the first three bits assigned to a particular robotic module asfollows: 000—Drive Motor (DM); 001—Function Motor (FN); 010—LED Matrix(LD); 011—IR Sensor (IR); 100—Color Sensor (CS); 101—Touch Sensor (TS);110—LDR Sensor (LS); and 111—Reserved (e.g., for particular componentsor not usable).

Further, in a robotic configuration one or more robotic component may beconnected, where more than one component may of same type. Then, anumber of same type of component is included in the identifier's bitsequence as listed in following examples: (A) 000 0001 identifies DM1;000 0010 identifies DM2; . . . 000 1111—DM15, for a DM type component;(B) 100 0001 identifies IR1; 100 0010 identifies IR2; . . . 1001111—IR15, for IR type component.

Furthermore, an identification also includes a relative location of therobotic module with respect to the connected robotic module. Thus, eachrobotic module is associated with a base structure identifier (e.g., acube number), side identification (e.g., left, right, etc.), and alocation identifier (e.g., where a secondary component is connect to themain component). FIGS. 31-33 illustrate such additional identificationsystem that helps unique identify different robotic modules, itslocations in a robotic configuration, etc.

FIG. 31 illustrates three example cubes arranged like in the maincomponent 100 (in FIG. 1). Such cubes may form the base structure, whereeach cube is assigned a number such as 1, 2, and 3 to identify aparticular cube.

Further, a cube typically has six sides or face. The identifieridentifies each side of the cube as shown in FIG. 32. In FIG. 32, anunfolded representation of the cube is shown, where a side is assigned aunique label, for example, Down (D), Top (T), Front (F), Back (B), Left(L), and Right (R).

A location identification is explained based on an example illustratedin FIG. 33A. According to an embodiment, a location ID comprises a cubenumber (e.g., in FIG. 31) and module address (e.g., bit sequencediscussed earlier). Referring to FIG. 33A, a location ID of a firstdrive motor (DM1) connected to a left side of a third cube of the maincomponent 100 is DM1 3L, a location ID of second drive motor DM2connected to a right side of the third cube of the main component 100 isDM2 3R, and a location ID of a first function motor (FN1) connected to atop side of the third cube of the main component is FN1 3T.

The naming of the robotic module can also be addressed as bytes: 1F, 1T,1L, 1R, 1D-0x01 to 0x06; 2T, 2L, 2R, 2D-0x07 to 0x0C; and 3T, 3L, 3R,3B, 3D-0x0D to 0x12.

Based on above, DM1=3L(0x0E), 0x01 indicates Drive Motor 1 connected oncube 3 Left side; DM2=3R(0x0F), 0x02 indicates Drive Motor connected oncube 3 Right side; and FN1=3T(0x0D), 0x11 indicates Function Motorconnected on cube 3 Top.

In an embodiment, the robotic modules may be daisy chained. For example,daisy chaining refers to a wiring scheme in which multiple roboticmodules are connected (e.g., via joinery 900) together in sequence or ina ring. In an embodiment, the addressing mechanism (and the identifierthereof) may include daisy chained modules added with a comma, forexample, 1T(0x02), 0x01, 0x12 that indicates on the first cube at thetop side, there is, a drive motor and a function motor.

Furthermore, a protocol structure used for communication/control betweencooperating parts (e.g., the main component and the secondary component)is as follow: a message comprises one or more of a header, a type, alength, and/or a value.

In the message, the header marks the beginning of packet for thefirmware of the robotic system (comprising the robotic modules, andrelated software). The type refers to a particular function such as (i)configuration—configuration of a robotic module (BOT), (ii) a drivemotor control, (iii) a function motor control, (iv) a sensor, and (v) acondition. The length (in bytes/char) refers to a length of a message.The value refers to an amount, state, command, etc. related to therobotic module. FIG. 33B illustrates examples of a protocol followed bythe modular robotic system of the present disclosure.

In addition to a standard components configured as discussed above, thepresent disclosure also provides a user with an option of do-it-yourself(DIY) configuration. DIY configuration refers providing user ability tocreate their own robotic module configuration including, but not limitedto, a user-defined function (e.g., via program code) that a roboticmodule should perform, specifying locations (e.g., via program code) atwhich the robotic module should be connected, implement functionalities(e.g., via program code) related to additional components that a usermay buy separate from the initial kit, etc. Such DIY configurationcapability opens up collaboration opportunities with other users, andseveral small user generated blocks (e.g., functions) can add up tobuild a larger more complex robotic configuration, for example, toachieve complex functionalities or tasks.

FIG. 34 is a flow chart of a method for a DIY configuration to create anew block. A block refers to, for example, a function defined for a newrobotic module (e.g., a second drive motor purchased by a user) or anexisting robotic module (e.g., a first drive motor available with theinitial kit). The function can be a set of processes (e.g., defined as aprogram code via an interface such as in FIGS. 36 and 37) to be executedto achieve a desired functionality (e.g., move left, right, etc.). Suchconfiguration ensures that any new functions or robotic module arecompatible with the present robotic system including the limitation ofnumber of components that can be connected, physical limitations of therobotic modules, communication protocols, code format, and otherintegration related requirements. The method of DIY configurationinvolves several steps as discussed below.

The method for a DIY configuration or programming a robotic moduleinvolves selecting, via an interface, i) a predefined function to beperformed by the robotic module, or ii) an option to create a userdefined function to be performed by the robotic module; defining, viathe interface, logic and parameters related to the user defined functionof the robotic module; and storing, via a processor, the user definedfunction in a processor of a first housing, where the processor isconfigured to control the robotic module based on the user-definedfunction when the robotic module is connected, via a joinery, to theprocessor, and where the joinery establishes an electrical connectionbetween the first housing and the robotic module. Example implementationof these method steps is further discussed in detail below.

In step S341, a user logs into a web programming interface provided bythe present robotic system (e.g., in FIGS. 36 and 37). In an embodiment,the web programming interface may be accessed, for example, via a loginscreen by entering valid login credentials such as an id and a password.However, the present disclosure is not limited to a particular loginformat and any other method of user authentication may be implemented,for example, biometric, transponder, IP-address detection based, etc.Once logged on, the web programming interface includes an option tocreate a new block.

In step S342, the option to create a new block is selected on the webprogramming interface. The new block can be a library (e.g., a set offunctions) or a single function, desired to be added. Then, in stepS343, a determination is made whether the new block is a library or afunction. For example, the determination may be based on user indicationwhether the new block is a library or a function, checking the extension(e.g., .lib) of a file, and/or analyzing if one function or a pluralityof functions are to be included.

Responsive to determination that a library is added, in step S347, aname of the library, and a number of function in the library isextracted or determined. In step S348, a loop is created that iteratestill each of the number of functions are analyzed/verified. For example,at each iteration of the loop, i.e., for each function, steps S344,S345, S346, and S349 (discussed below) may be performed. Once all thefunctions are evaluated, in step S349, the library (or a function) isexported, for example, to a cloud storage (in FIG. 46), the roboticmodule (e.g., the first processor 10 of the main component 100 and/ormemory of secondary robotic component), or other storage and processinglocation that interacts with a robotic module of the robotic system.

Responsive to determination that a function is created, in step S344,the function's name, description, return type, and/or other propertiesof the function are extracted. For example, the function (and the codetherein) is determined or received, for example, by a processorimplementing the web programming interface.

Optionally, in step S345, one or more blocks, within already providedfunctions (e.g., loop, if-else-condition, motor control, etc.) of theweb programming interface, may be inserted in the created new block. Forexample, a block (e.g., a if-else-condition, a motor related function, asensor related function, etc.) may be chosen for inserted at a desiredlocation in code (e.g., see FIGS. 36 and 37).

In case of the library being created, the step S344 may be executed foreach function and for each function, the function's name, description,and return type may be identified.

FIG. 36 illustrates an example web programming interface which can beaccessed by a user with a valid login credentials such as an id and apassword. The interface includes a pre-defined set of block, shown atbottom of the interface, such as control, loops, math, text, motor,sensor, etc. A user can drag and drop the blocks to create a program ina center of the interface.

FIG. 37 illustrates an example of a DIY block such as Move_Forward,Move_Left, Move_Right, and Move_Stop created by the user. When the userincludes or removes a block in the program (e.g., My Program), a code isautomatically created as shown at a right side of the interface. Thecode is then included in the function when saved. Thus, a user-definedfunction may be created, via the web programing interface.

Once the function (and the code therein) is received, for example, viathe web programming interface, in step S346, the method verifies, via aprocessor, the new block including the newly defined code. The verifystep is a condition check that determines whether the newly definedblock is in accordance with limitation of the present robotic systems,the robotic modules or their configurations. For example, thelimitations of the robotic module may be related to speed, attachmentlocation, orientation, etc. or other physical and/or coding relatedlimitations of the robotic system.

If the verification process fails due to the defined function (or codetherein) not meeting the limitations of the robotic system, the methodmay send error signal or the user has to troubleshoot the errors and fixthem.

Once, the new block is verified, the new block may be exported (in stepS349) to the robotic module (e.g., in the main PCB of the maincomponent) to implement the new block or in other words, theuser-defined functionality.

FIG. 35 is a flow chart of a method for configuring a robotic module,which may not be already configured. Robotic module configurationinvolves assigning unique names and/or address (e.g., per the addressingmechanism discussed earlier) to unique identify a particular roboticmodule. In an embodiment, the robotic modules may be pre-configured whenthe initial kit with limited number of component (e.g., one roboticmodule of each 100, 200, 300, 400-700 and 800) is received. However, ifthe user would like to purchase additional robotic modules to build morecomplex robotic structures or configurations, the additional roboticmodule may need to be configured to enable the main component 100identify a particular robotic module when the particular robotic moduleis connected, via the joinery 900, to the main component 100. The moduleconfiguration may involve providing instructions or messages to theuser, via a user interface (e.g., implemented on a phone, tablet,computer, etc.). In an embodiment, instructions or messages is regardinghow to connect different robotic module to build the roboticconfiguration. An example user interface implementing the method of FIG.35 is illustrated in FIGS. 39A-39D, 40 and 41, discussed as later.

Referring to FIG. 35, the method for configuring a robotic moduleinvolves connecting the robotic module to a main component, andassigning, via a processor, an identifier to the robotic module based onan addressing mechanism, where the addressing mechanism is configured toidentify a type of the robotic module, a number of the robotic module,and/or a location of the robotic module with respect to the maincomponent. In an embodiment, the assigning of the addressing mechanisminvolves assigning a first set of bits of a plurality of bits toidentify the type of the robotic module, and a second set of bits of theplurality of bits to indicate the number the particular component. For arobotic structure where a plurality of robotic modules may be connected,the method of configuring the robotic modules involves daisy chaining ofthe plurality of bits corresponding to a plurality of robotic modulesconnected to the main component and/or a robotic module of the pluralityof robotic modules. Example implementation of these method steps isfurther discussed in detail below.

Step S351 involves instructing, via an interface, where to connect arobotic module (e.g., a drive motor, sensor, function motor, etc.) to acertain cube of the main component (e.g. 1^(st) cube of the maincomponent 100). Example locations of a cube were illustrated anddiscussed with respect to FIGS. 31 and 32.

Once the robotic module is connected to the main component 100, therobotic module is identified, in step S352. For example, the type of therobotic module (e.g., a drive motor, a sensor or a function motor) isidentified based on an electrical characteristic of the robotic module.In an embodiment, the electrical characteristic may be an electricalresistance of the robotic module. Thus, in an embodiment, theidentification involves passing an electric current (I) through theresistance (R) (or the robotic module in general) and measuring a dropin voltage (V). Based on the drop in voltage and the electric current,the resistance of the robotic module may be determined. For example,R=V/I. Based on the resistance value, the robotic module may beidentified as a particular sensor, drive motor, function motor, etc. Inembodiment, the connected module may be identified based on a uniqueaddress (if already exists) of the robotic module stored in the memoryof the robotic module. The address may include the type, the number ofthe module, location at which it should be connected to the maincomponent, etc., as discussed earlier.

In step S353, information related to the identified robotic module isretrieved from a memory or database. For example, a database of roboticmodules that stores properties, name, location, address, and otherrelated information of a robotic module. The memory may be a memory ofthe main component, cloud, or other memory accessible during the moduleconfiguration via the user interface. The retrieved information may bedisplayed as “Saved Info”, as shown in FIG. 35. The displayedinformation may then be edited, for example, fields such as name of therobotic component may be edited. The user may then change a name from,for example, a drive motor to DM1/DM2/ . . . , sensor to IR1/IR2/IR3 . .. , etc. Certain fields such as the unique identifier of the roboticmodule may not be editable. Further, in step S353, the editedinformation is saved.

Further, the method, in step S354, determines whether the identifiedrobotic module with edited information is already stored in the databaseor the memory. Responsive to the connected module with editedinformation already exists, a new address that is available may beassigned to the connected module. For example, a second drive motor(DM2) may be connected, but a drive motor (DM1) may already exist in thedatabase, in which case, a new address may be assigned to the seconddrive motor (DM2), in step S356. On the other hand, responsive to thefact that the identified robotic module does not exist, then the newname and a new address may be determined and saved, in step S357. Forexample, the connected robotic module may be a color sensor, which maynot already exist in a memory or database. Then, the color sensor mayassigned a new address and stored.

Once the robotic modules and related blocks (i.e., functions) areconfigured or programmed, as discussed above in FIGS. 34 and 35, theserobotic modules should be connected in a particular manner to build adesired robotic structure. Such robotic structure then receives commandsbased on the program coded in the main PCB so that different roboticmodules are articulated or activated to perform a desired task.According to the present disclosure there is provided a build interfacethat guides a user on how to build a particular robotic configurationusing the robotic modules that were configured as discussed above (e.g.,in FIGS. 34 and 35)

FIGS. 39A-39D illustrates an example build interface that guides a useron how to assemble the robotic modules to build a desired roboticconfiguration (e.g., a gorilla). The build interface comprises severalscreens that provides a step-by-step information and guidance on how toassemble the robotic modules.

A screen of FIG. 39A shows a main component 100 and a location where adrive motor M1 should be relatively connected to the main component 100.For example, motor M1 should be connected at the right side of the3^(rd) cube of the main component 100. Once, the motor M1 is attached,the processor of the main component 100 may identify the motor M1 andits configuration (e.g., configured based on module configuration methodof FIG. 35). The identification process may involve comparing thelocation and type of the robotic module with a pre-determined roboticconfiguration. In an embodiment, the processor verifies whether the M1'slocation with respect to the main component 100 is as desired. When themotor M1 is attached at the correct location, a second screen may appearon the build interface to show where to connect a next component.

The second screen (in FIG. 39B) shows that a wheel W1 should beconnected to the motor M1 at the right side. When correctly connected, athird screen (in FIG. 39C) shows that a motor M2 should be connected toa left side on the third cube. Further, when correctly connected, afourth screen (in FIG. 39D) shows that a wheel W2 should be connected toa left side of the motor M2. When correctly connected, a fifth screen(in FIG. 39E) shows that a face should be connected to a top side of thefirst cube. When correctly connected, a sixth screen (in FIG. 39F) showsthat a hand H1 should be connected to a right side of the first cube.When correctly connected, a seventh screen (in FIG. 39G) shows that ahand H2 should be connected to a left side of the first cube. After allthe robotic modules are connected correctly (i.e., at a pre-definedlocations related to a particular robotic structure), a final screensuch as in FIG. 40 may appear showing a message that the desired roboticstructure (e.g., the gorilla) is successfully created.

Referring to FIG. 41, if during the above building process a roboticmodule is incorrectly connected, the processor of the main component 100sends an error message to the interface, where the interface canindicate (e.g., visually, using sound signal, etc.) the component thatis incorrectly connected. For example, when the motor M1 connected tothe first cube, an error message may be sent and the interface maydisplay the motor M1 in red. In addition, an error message using “MotorM1 didn't attach correctly,” is displayed.

In an embodiment, the interface in FIGS. 39A-39G, 40, and 41 may beimplemented on any electronic device such as a phone, tablet, computer,etc. The device may be further configured to communicate (e.g., throughLAN cable, wife, Bluethooth, etc.) with the robotic modules or therobotic system in general. For example, FIGS. 42 and 43 shows screen forBluethooth connection. For example, after the gorilla is successfullybuilt, the interface in FIG. 42 provides an option to connect thegorilla to the robotic system (named “Tweak”) via Bluethooth. Aftertapping the done button, the screen in FIG. 43 shows differentBluethooth devices (e.g., “Tweak Y88 of the Tweak system) in thevicinity of the gorilla, to which the gorilla can be connected, via theinterface. Thus, the robotic structure (e.g., the gorilla) can send andreceive signals (e.g., sensor, command/control signals, etc.) from therobotic system (e.g., Tweak) via the interface implemented on the userdevice (e.g., phone, tablet, computer, etc.).

In an embodiment, the robotic structure may be used to play games, via agaming interface. For example, FIGS. 44A-44D illustrates an examplegaming interface that communicates with the robotic configuration (e.g.,the gorilla built using the interface discussed above). The gaminginterface may activate the functions, for example, stored in the memoryof the main PCB that directs the robotic modules to perform the codedtask such as move forward, turn, back, left, right, speed, etc. In anembodiment, a remote controller (e.g., in FIG. 45) may be connected, viaBluetooth to the robotic structure (e.g., the gorilla). The exampleremote controller may be operated by a user (e.g., a kid who built thegorilla), where the remote controller being configured to send commandsignals, for example, while playing the game in FIGS. 44A-44D.

FIG. 45 is an illustrative diagram of an exemplary computer systemarchitecture, in accordance with various embodiments of the presentteaching. Such a specialized system incorporating the present teachinghas a functional block diagram illustration of a hardware platform whichincludes user interface elements. Computer 4500 may be a general-purposecomputer or a special purpose computer (e.g., the first processor 10 ofthe main component). Both can be used to implement a specialized systemfor the present teaching. Computer 4500 may be used to implement anycomponent(s) described herein. For example, the present teaching may beimplemented on a computer such as computer 4500 via its hardware,software program, firmware, or a combination thereof. Although only onesuch computer is shown, for convenience, the computer functions relatingto the present teaching as described herein may be implemented in adistributed fashion on a number of similar platforms, to distribute theprocessing load.

Computer 4500, for example, may include communication ports 4550connected to and from a network 4540 connected thereto to facilitatedata communications. Computer 4500 also includes a central processingunit (CPU) 4520, in the form of one or more processors, for executingprogram instructions. The exemplary computer platform may also includean internal communication bus 4510, program storage and data storage ofdifferent forms such as memory 4502 and database 4504 (e.g., memoryincludes disk, read only memory (ROM), or random access memory (RAM)),for various data files to be processed and/or communicated by computer4500, as well as possibly program instructions to be executed by CPU4520. Computer 4500 may also include an I/O component 4560 supportinginput/output flows between the computer and other components (e.g., arobotic module 4525 such as the drive motor, the function motor, thesensors described earlier) and/or user interface elements therein.Computer 4500 may also receive programming and data via network 4540 andthe network controller 4506. For example, the network controller 4506configured to perform a simple network communication function to sendand receive signal to and from the network 4540. In an embodiment, thepresent teachings may be structured for cloud computing whereby a singlefunction is shared and processed in collaboration among a plurality ofapparatuses via the network 4560.

Computer 4500, for example, may also be connected to a server 4522 viathe network 4540 connected thereto to facilitate data communications. Inan embodiment, the server 4522 implements a web programming interface(e.g., as discussed with respect to FIGS. 36 and 37).

Hence, aspects of the present teaching(s) as outlined above, may beembodied in programming. Program aspects of the technology may bethought of as “products” or “articles of manufacture” typically in theform of executable code and/or associated data that is carried on orembodied in a type of machine readable medium. Tangible non-transitory“storage” type media include any or all of the memory or other storagefor the computers, processors or the like, or associated modulesthereof, such as various semiconductor memories, tape drives, diskdrives and the like, which may provide storage at any time for thesoftware programming.

All or portions of the software may at times be communicated through anetwork such as the Internet or various other telecommunicationnetworks. Such communications, for example, may enable loading of thesoftware from one computer or processor into another, for example, froma management server or host computer of the robotic system into thehardware platform(s) of a computing environment or other systemimplementing a computing environment or similar functionalities inconnection with abuse detection. Thus, another type of media that maybear the software elements includes optical, electrical andelectromagnetic waves, such as used across physical interfaces betweenlocal devices, through wired and optical landline networks and overvarious air-links. The physical elements that carry such waves, such aswired or wireless links, optical links or the like, also may beconsidered as media bearing the software. As used herein, unlessrestricted to tangible “storage” media, terms such as computer ormachine “readable medium” refer to any medium that participates inproviding instructions to a processor for execution.

Hence, a machine-readable medium may take many forms, including but notlimited to, a tangible storage medium, a carrier wave medium or physicaltransmission medium. Non-volatile storage media include, for example,optical or magnetic disks, such as any of the storage devices in anycomputer(s) or the like, which may be used to implement the system orany of its components as shown in the drawings. Volatile storage mediainclude dynamic memory, such as a main memory of such a computerplatform. Tangible transmission media include coaxial cables; copperwire and fiber optics, including the wires that form a bus within acomputer system. Carrier-wave transmission media may take the form ofelectric or electromagnetic signals, or acoustic or light waves such asthose generated during radio frequency (RF) and infrared (IR) datacommunications. Common forms of computer-readable media thereforeinclude for example: a floppy disk, a flexible disk, hard disk, magnetictape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any otheroptical medium, punch cards paper tape, any other physical storagemedium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM,any other memory chip or cartridge, a carrier wave transporting data orinstructions, cables or links transporting such a carrier wave, or anyother medium from which a computer may read programming code and/ordata. Many of these forms of computer readable media may be involved incarrying one or more sequences of one or more instructions to a physicalprocessor for execution.

Those skilled in the art will recognize that the present teachings areamenable to a variety of modifications and/or enhancements. For example,although the implementation of various components described above may beembodied in a hardware device, it may also be implemented as a softwareonly solution—e.g., an installation on an existing server. In addition,the functions of the robotic structure, as disclosed herein, may beimplemented as a firmware, firmware/software combination,firmware/hardware combination, or a hardware/firmware/softwarecombination.

Turning now to FIG. 46, there is depicted an architecture of a mobiledevice 4600, which can be used to realize a specialized systemimplementing the present teaching. In this example, a user device onwhich the functionalities of the various embodiments described hereincan be implemented is a mobile device 4600, including, but not limitedto, a smart phone, a tablet, a music player, a handled gaming console, aglobal positioning system (GPS) receiver, and a wearable computingdevice (e.g., eyeglasses, wrist watch, etc.), or in any other formfactor.

The mobile device 4600 in this example includes one or more centralprocessing units (CPUs) 4640, one or more graphic processing units(GPUs) 4630, a display 4620, a memory 4660, a communication platform4610, such as a wireless communication module, storage 4690, and one ormore input/output (I/O) devices 4650. Any other suitable component,including but not limited to a system bus or a controller (not shown),may also be included in the mobile device 4600. As shown in FIG. 14, amobile operating system 4670, e.g., iOS, Android, Windows Phone, etc.,and one or more applications 4680 may be loaded into the memory 4660from the storage 4690 in order to be executed by the CPU 4640. Theapplications 4680 may include a browser or any other suitable mobileapps for performing the various functionalities on the mobile device4600. User interactions with the content displayed on the display panel4620 may be achieved via the I/O devices 4650.

To implement various modules, units, and their functionalities describedin the present disclosure, computer hardware platforms may be used asthe hardware platform(s) for one or more of the elements describedherein. The hardware elements, operating systems and programminglanguages of such computers are conventional in nature, and it ispresumed that those skilled in the art are adequately familiar therewithto adapt those technologies. A computer with user interface elements maybe used to implement a personal computer (PC) or other type of workstation or terminal device, although a computer may also act as a serverif appropriately programmed. It is believed that those skilled in theart are familiar with the structure, programming, and general operationof such computer equipment and as a result the drawings should beself-explanatory.

A modular robotic system comprises of robotic modules, which can beconnected with each other, disconnected, and/or reconnected to formdifferent configurations while enabling new functionalities specific toa particular configuration. As a result, multiple possible robotconfigurations or structures may be obtained from the same number ofrobotic modules. For example, a robot structure (e.g., a car, an animal,a mechanical tool or apparatus, etc.) can be built by interconnecting acertain number of modules to form a desired structure (e.g., car withfour wheels) and programming desired functionality (e.g., steer, moveforwards/backwards, etc.) to activate the desired robotic structure toperform a desired task (e.g., driving from a first location to a secondlocation while steering along a desired path or steering aroundobstructions).

In the present disclosure the terms “robotic module,” “roboticcomponent,” “module,” “programmable module,” and “block,” may be usedinterchangeably. These terms refer to a single component of the roboticsystem. In the present disclosure, at least one robotic module isprogrammable to include a code or algorithm which upon execution, via, aprocessor performed desired functions of the robotic system.

The terms “robotic system,” “robotic toy,” “robotic structure,” and“robotic configuration,” may be used to refer to any device, apparatusor a toy comprising cooperating parts configured using robotic modulesaccording to the present disclosure. In an embodiment, these termsrefers to a system comprising several components (e.g., mechanical,electrical/electronic, software, etc.) related to a robotic module or aset of robotic modules. For example, the robotic system comprises a setof robotic modules, user interfaces used to implement or activatefunctionalities related to the robotic modules, any programs orconfigurations build using the robotic modules and the user interface, aweb programming interface used to code a particular function to beperformed related to a robotic module, a user-defined configuration ofthe robotic modules, or any other tools, programming interface, etc.relating to the robotic modules.

The robotic structure's physical actions may be conditioned by aninteraction of the robotic structure with its surroundings, and therobotic structure may be programmed to respond to sensor inputs, such asphysical contact with an object or to light, sound, color, and to changeits behavior on the basis of the sensor inputs. In an embodiment, suchinteraction of the robotic structure may need additional components tobe attached to an existing robotic structure, change a position ororientation of a particular component, or other reconfiguration toimprove, for example, an operating range of a particular robotic moduleor the robotic structure. The present disclosure provides connectorsthat can be coupled to any robotic module of a robotic structure/toy toallow additional components to be connected to the robotic structure andfurther extend its functionality.

According to the present disclosure, a robotic structure is built byinterconnecting, via a joinery or a connector, cooperating roboticmodules. The joinery comprises a first connector (also referred as agroove element or groove) with a cavity or groove, and a secondconnector (also referred as a ridge element or a ridge) having aprojecting portion that can be received in the cavity or the groove. Thejoinery (e.g., comprising the first connector and the second connector)allows interconnection between two modules in multiple orientations.According to the present disclosure, the connectors are also configuredto include such joinery to enable connection with any robotic module ofthe robotic structure.

The joinery of the robotic structure are also configured to easilyconnect and disconnect cooperating modules, for example, via a snapaction. The joinery also includes a locking element, which locks thecooperating modules when connected and easily unlocks upon applyingforce while disconnecting the modules. The joinery also includeselectrical contact points such as pogo pins that establish an electricalconnection between cooperating parts thereby enabling communication ofsignals such as sensor inputs, control commands etc. between thecooperating modules.

In an embodiment, the joinery comprises an X-shaped portions (e.g., see910 and 950 in FIGS. 48 and 49) that allows two robotic modules to beconnected in at least four different orientations with respect to eachother. The two modules may be a first housing (interchangeably referredas a main component for better readability) comprising a first joinery(e.g., having an X-shaped groove) and a second housing (interchangeablyreferred as a secondary component for better readability) comprising asecond joinery (e.g., having an X-shaped ridge). For example, the fourorientations of the second housing or a secondary component (e.g., afunction motor 300 in FIGS. 52A-52G) correspond to connecting thesecondary component's bottom side, top side, right side, or left side toa side of the first housing such as a main component 100 (e.g., in FIG.47). Thus, the joinery provides flexibility in orienting a componentrelative to another component to give desired shape or structure to therobotic toy. It should be noted that the X-shapes of the joinery areonly exemplary and does not limit the scope of the present disclosure.Any other geometric shapes (e.g., pentagon, hexagon, etc.) may beconfigured to form the joinery. As an example, in the presentdisclosure, the X-shaped joinery is used to explain the concepts andfunction of the robotic modules and their interactions, how the roboticmodules should be coupled and detached to build a robotic structure,etc. A detailed description of the joinery is available in the Indianpatent Application 201811047472, filed on Dec. 14, 2018, which isincorporated herein in its entirety by reference.

In an embodiment, an orientation may be defined as an angular positionor a linear position. In an embodiment, the angular position isdescribed about an axis passing through a robotic module, where theangular positon is described with respect to a face of a robotic module.For example, the angular positions can be 0°, 90°, 270°, and 360°, or30°, 120°, 210°, and 300°, or any other desired angular position. Whenthe plurality of orientations are defined with respect to a face of therobotic module, the face may be a top face, a bottom face, a front face,a side face, etc. defined based on viewing direction of a user. In anembodiment, the linear position is described as a position along a guideline or channel. It can be understood by a person skilled in the artthat based on a shape of the guide or channel, the linear position mayalong a position along a straight path or a curved path.

FIG. 47 is an example robotic toy (e.g., a car). The robotic toycomprises cooperating robotic modules, where a robotic module is themain component 100 (see also FIG. 48) and another of the cooperatingrobotic modules is a secondary component (e.g., drive motors 200, and adisplay 800) connected via a joinery 900. The joinery 900 is configuredto connect the secondary component (e.g., 200 or 800) in a desiredorientation relative to the main component 100. A first processor may behoused in the main component 100, where the first processor isconfigured to communicate with a second processor of the secondarycomponent via the joinery 900. The joinery 900 comprises a plurality ofelectrical contacts (not shown in FIG. 47, but an example is 954 in FIG.50G) to establish an electrical connection between the first processorand the second processor of the secondary component of the cooperatingparts.

FIG. 48 is perspective view of the main component 100. The maincomponent includes a plurality of groove elements arranged along each ofa face of the main component. For example, three groove elements910A-910C are arranged equidistant from each other on a first face ofthe main component 100. Accordingly, the grooves of the groove elements910A-910C will be arranged linearly at equidistant from each other.Further, a groove element is placed on each of the two side faces (e.g.,left and right) respectively. In the present example, total of 14 grooveelements are included in the main component 100. Thus, a total of 14 orless number of secondary components may be connected to the maincomponent 100.

In an embodiment, the first processor of the main component 100 isconfigured to automatically identify the type of the secondarycomponent, when the secondary component is connected to the maincomponent 100. In the present disclosure, example secondary componentsinclude, but not limited to, one or more of, the drive motor 200, afunction motor 300, the display 800, and sensors 400, 500, 600, 700 (notshown in the present application). Furthermore, the first processor maybe configured to determine an orientation and/or a location of thesecondary component with respect to the main component 100. According toan embodiment, it may be desirable to identify the correct orientationand location of the secondary component, since the joinery 900 allowsthe secondary component to be connected in a plurality of orientationswith respect to the main component, however only a certain orientationmay be desired within a robotic structure. Furthermore, the firstprocessor may be configured to identify an additional component and itsorientation when connected via a connector (e.g., a rotatory connector,or a slidable connector) of the present disclosure.

As shown in FIGS. 47 and 48, grooves within the groove element (e.g.,910A-910C) of the main component are an X-shaped depressed portiondepressed inward relative to the face of the main component 100. Thus,the main component 100 can connect with any robotic module (e.g., thedrive motor 200) having a ridge 950 (e.g., see FIG. 49) as an X-shapedprotruding portion protruding outward relative to a surface of a face ofthe secondary component. The X-shape of the ridge 950 should correspondto the X-shape of the groove 910.

Referring to FIG. 49, the drive motor 200 include the ridge 950 havingthe plurality of electrical contacts at the X-shaped protruding portion.In the examples shown, a number of contacts is six that are arrangedlinearly with an equidistance between each adjacent pins. Further, toaccommodate the six contacts 950, the groove 910 of the main component100 includes a cut-out or a plurality of holes (not shown) at the bottomof the X-shaped cavity configured to receive the plurality of electricalcontacts through the ridge 950.

Now, referring to back to FIGS. 48 and 49, the groove 912 is formedwithin a step portion 104 relative the face of the main component 100.The step portion 104 is a body of the groove element 910 that projectsoutward from the face of the main component 100. On the other hand, theridge 950 is formed within a pocket on a face of the secondary component(e.g., 200). The pocket is a depressed portion with respect to a face ofthe secondary component. A height of the ridge 950 is less than a depthof the pocket such that the ridge 950 does not project out relative tothe surface of the face of the secondary component. In an embodiment,the pocket is configured to receive the step portion 104 of the maincomponent 100. Thus, in an embodiment, the depth and shape of the pocketof the ridge element 950 may be defined with respect to the size andshape of the step portion 104 and/or depth of groove. For example, aheight of the step portion 104 of the main component 100 is less thanthe depth of the pocket of the secondary component (e.g., 200). However,the present disclosure is not limited to such configuration. A personskilled in the art can determine appropriate dimension of the pocket,the step portion 104, the groove 910 and the ridge 950 such that thecooperating component (e.g., 100 and 200), more particularly faces atthe joinery 900, may or may not be touching each other or flushed toeach other.

Referring to FIG. 49, the drive motor 200 can be any componentconfigured to connect, via the joinery 900, the main component 100 toprovide propulsion or driving energy to the main component or therobotic structure in general. The drive motor 200 is an electric motorconfigured to send receive signals from the main component 100. Therobotic structure comprising the drive motor 200 can be instructed tomove forward/backward/turn, etc. by controlling a speed of the drivemotor 200. Accordingly, a drive motor control function may be definedand stored in the memory, for example, of the processor of the maincomponent 100.

As shown, the drive motor 200 includes at least one ridge 950 accessiblefrom a first face, and a groove 910 accessible from a second face of thedrive motor 200. According to the present disclosure, a connector (e.g.,a rotatory connector, a sliding connector, or a skin connector) may beconnected to either of the ridge 950 or a groove 910. For example, theconnector of the present disclosure can be connected to includeadditional secondary component such as one or more of the sensors 400,500, 600, 700 (not shown in the present disclosure). Each of the sensors400-700 include a sensing element configured to sense a sensingcharacteristic (e.g., color, touch, light, etc.). In an embodiment, thefirst processor of the main component 100 receives any sensor signal viathe joinery and/or the connectors of the present disclosure. Theconnectors are further described in detail as follows.

FIGS. 50A-50J, 51A, and 51B illustrate examples of a rotatory connector40, 40B and 40C, respectively. A rotatory connector is configured tocouple at least two components such as the main component 100 and thesecondary component (e.g., the drive motor 200, the function motor 300,the sensor 400-700, or other components) of a robotic toy system. Therotatory connector is a multi-purpose connector with at least two modesof operation: a rotation mode and a daisy chaining mode. Each modeextending configuration and functional capability of a robotic system ora robotic toy. For example, with rotatory connector components may beconnected to the robotic system in a desired orientation. Further,motion or signal may be transmitted to/from the additional components.For example, a drive motor 200 can transmit rotational motion, via therotatory connector to another component (e.g., a function motor, or alinkage mechanism). In another example, if the additional component is asensor signal, then it can be oriented in a desired orientation and thesensing signal from the sensor may be transmitted, via the rotationcomponent, to the main component 100.

In a first mode, the rotatory connector allows free rotation of anyrobotic component (also referred as a “module”) coupled to the rotatoryconnector. Thus, the rotatory connector can rotate a component of therobotic system or toy in a desired orientation with respect to anothercomponent. The free rotation feature offered by the rotatory connectormay be very useful while making and using skins (e.g., see FIGS. 55A and55B), and using an off-centered connector (e.g., L or T shaped) coupledto, for example, wheels.

In a second mode, the rotatory connector allows establishing anelectrical connection allowing Daisy chaining of modules from e.g., themain component 100 to the drive motor 200 (or function motor 300) to adisplay module 800 (also referred as the display 800). In an embodiment,the electrical connection is established in a locked state, for example,align orientation marks (e.g., 415 and 425) and press the rotatableelements 420 and 410 together to stop rotation. Once locked, therotatory connector can be used as a daisy chaining connector withspecific modules such as connection between the main component, thedrive motor, the function motor, and/or the sensors that may be used tobuild a desired robotic toy.

In an embodiment, FIGS. 50A-50J illustrates example rotatory connector40 for a robotic system—(or toy) that includes a first component (e.g.,the main component 100) interoperably connected to a second component(e.g., the drive motor 200). The rotatory connector 40 includes a firstrotatable element 410 that can be removably coupled to the firstcomponent of the robotic system, and a second rotatable element 420configured to rotate in a desired orientation relative to the firstrotatable element 410 and lock to the first rotatable element 410 in thedesired orientation. The second rotatable element 420 removably couplesto the second component of the robotic system thereby allowing thesecond component be connected (via 410) to the first component in thedesired orientation.

The rotatable elements 410 and 420 can be in an unlocked state (seeFIGS. 50A, 50B, 50C and 50E) or a locked state (see FIG. 50F) withrespect to each other. In the unlocked state, the rotatable element 410and 420 can rotate freely with respect to each other, but does notestablish an electrical connection between the robotic system'scomponents e.g., the first component and the second component connectedto the rotatable elements 410 and 420, respectively. In the lockedstate, the rotatable elements 410 and 420 are not rotatable, butestablishes an electrical connection between robotic system component'se.g., the first component and the second component connected to therotatable elements 410 and 420, respectively. Thus, in use, therotatable elements 410 and 420 are first unlocked to orient a connectedcomponent (e.g., the first component) in the desired orientation, thenlocked in the desired orientation to transmit the motion or signalbetween the connected components.

Referring to FIGS. 50A, 50B, 50C and 50E, the rotatable elements 410 and420 are configured to unlock when the elements 410 and 420 are pulledaway (e.g., outward in FIG. 50E) from each other. When unlocked, theelements 410 and 420 can rotate freely about a rotation axis R thatpasses through a center of the rotatable elements 410 and 420.

In an embodiment, the first rotatable element 410 includes a firstorientation mark 415. The second rotatable element 420 includes a secondorientation mark 425. The marks 415 and 425 are orientation marksindicating a desired orientation. Also, the first mark 415 and thesecond mark 425, when aligned, allows the second rotatable element 420to be locked in the desired orientation with respect to the firstrotatable element 410. In an embodiment, if the first mark 415 and thesecond mark 425 are misaligned, the first rotatable element 410 and thesecond rotatable element 420 cannot be locked in the desiredorientation.

In an embodiment, the rotatable elements 410 and 420 are locked bypushing the elements inwards, as shown in FIG. 50F. In an embodiment,the rotatable element 410 includes a hollow portion, in which the secondrotatable element 420 can move inwards. In addition, the elements 410and 420 includes locking elements that lock the elements in place anddoes not allow rotation, e.g., about the rotation axis R.

FIGS. 50G and 50H illustrate exploded view of the rotatory connector 40.The exploded view shows how the elements 410 and 420 are aligned forassembling purposes. Also, FIG. 50G illustrates an example electricalcomponent housed within the rotatory connector 40. For example,electrical contacts 954 may be housed in the first rotatable element 410and the track element 982 may be housed in the second rotatable element420. An electrical connection is established when the contacts 954(e.g., pogo pins) and tracks (e.g., arc-shaped made of electricallyconducting material) of the track element 982 (interchangeably referredas tracks 982) touch each other. In an embodiment, in the unlocked state(e.g., FIG. 50E), the contacts 954 do not touch the tracks 982, hence donot establish an electrical connection therebetween. In the locked state(e.g., FIG. 50F), the contacts 954 touch the tracks 982 therebyestablishing an electrical connection and allowing signals (e.g.,rotation signal, sensor signal, control signal, etc.) to be transmittedbetween connected components.

FIGS. 50G, 50H, and 50I also illustrate example construction of thefirst rotatable element 410 in more detail. In an embodiment, the firstrotatable element 410 includes a base or hollow portion 411 and aconnecting portion 413 projecting away from an opening (at an inner sidemarked in FIGS. 50G and 50H) of the hollow portion 411. The hollowportion 411 enables rotation between the elements 410 and 420. Theconnecting portion 413 enables coupling to a first component (e.g.,drive motor 200) of the robotic system. Thus, together the hollowportion 411 and connecting portion 413 provide the desiredrotation/orientation functionality for robotic components, as discussedherein.

The hollow portion 411 is configured to receive a portion (e.g., 427 and428 in FIGS. 50G, 50H, and 50J) of the second rotatable element 420. Inan embodiment, the hollow portion 411 has a circular shape configured toreceive circular shaped flange portion (e.g., 427 and 428) allowingrotational motion therebetween.

Furthermore, the hollow portion 411 may include projections 417 at oneor more locations at the edge or circumference of the hollow portion411, where the projections 417 are configured to allow the flangeportions 427 and 428 to be inserted in the hollow portion 411 whileprevention the second rotatable element 420 from separating whilerelative rotation between elements 410 and 420. For example, two (ormore) projections 417 are located diagonally opposite to each other. Theprojections 417 extend radially towards the center of the hollow portion411 thereby blocking the flange portions 427 and 428 once inserted inthe hollow portion.

In an embodiment, for orientation purposes, e.g., to guide a user, theorientation marks 415 are formed at an outer surface of the hollowportion 411 (as shown in FIGS. 50A-50I).

In an embodiment, the connecting portion 413 of the first rotatableelement 410 includes a groove configured to receive a ridge element ofthe first component of the robotic system. In an embodiment, the groove(e.g., like groove 910 of the Indian patent Application 201811047472) isan X-shaped depressed portion depressed inward relative to a face of therotatable element 410. The ridge element of the first robotic componentincludes an X-shaped protruding portion protruding outward relative to aface of the robotic component. The X-shape of the ridge corresponds tothe X-shape of the groove. An example coupling of different roboticcomponents (e.g., 100, 200, 300, etc.) are discussed with respect toFIGS. 47 and 48, and further discussed in detail in the Indian patentApplication 201811047472 filed on Dec. 14, 2018, which is incorporatedherein in its entirety by reference.

FIGS. 50G, 50H, and 50J illustrate example construction of the secondrotatable element 420 in more detail. The second rotatable element 420includes a base on which a connecting portion 421 (e.g., X-shapedgroove) extends perpendicular to a plane of the base. The secondrotatable element 420 also includes a flange portion (e.g., portions 427and 428) configured to prevent the second rotatable element 420 fromseparating while relatively rotating the first rotatable element 410 andthe second rotatable element 420. The flange portion (in cooperationwith the hollow portion 411 of the element 410) enables rotation betweenthe elements 410 and 420, while the connection portion 421 enablescoupling to a second component (e.g., drive motor 200) of the roboticsystem. Thus, together the flange portion and connecting portion 421provide the desired rotation/orientation functionality for roboticcomponents, as discussed herein.

In an embodiment, the flange portion may be continuous (not shown) orsegmented (e.g., including 427 and 428 as shown). The segmented flangeconfiguration enable locking functionality in the desired orientation.However, a person skilled in the art can include a continuous flangewith similar locking functionality, where the second rotatable element420 is locked in a desired orientation and enables an electricalconnection between connected robotic components as discussed herein.

The flange portions 427 and 428 extend radially outward (e.g., see FIGS.50G, 50H, 50J) from the edge of the base of the second rotatable element420. The shape of the flange portion 427 and 428 conforms to the shapeof the hollow portion of the first rotatable element 410. In anembodiment, the flange portions 427 and 428 is circular in shape. In anembodiment, the flange portion may be segmented arcs of a circle (asshown in FIG. 50J) or continuous circle (not illustrated). In anembodiment, the flange portion of the second rotatable element 420 issegmented to include one or more corner flange portion 428, as shown inFIG. 50J. The corner flange portion 428 also assists in locking of thesecond rotatable element 420.

In an embodiment, the connecting portion 421 of the second rotatableelement 420 includes a groove configured to receive a ridge element ofthe second component of the robotic system. In an embodiment, the groove419 (e.g., like groove 910 of the Indian patent Application201811047472) is an X-shaped depressed portion depressed inward relativeto a face of the rotatable element 420. The ridge element of the secondrobotic component includes an X-shaped protruding portion protrudingoutward relative to a face of the robotic component, the X-shape of theridge corresponds to the X-shape of the groove 419. An example couplingof different robotic components (e.g., 100, 200, 300, etc.) arediscussed with respect to FIGS. 47 and 48, and further discussed indetail in the Indian patent Application 201811047472 filed on Dec. 14,2018, which is incorporated herein in its entirety by reference.

In an embodiment, for orientation purposes, e.g., to guide a user, theorientation marks 425 may be formed at locking elements of theconnecting portion 421 or at any other location on an outer surface ofthe connecting portion 421 (as shown in FIGS. 50A-50I) of the secondrotatable element 420. As discussed earlier the orientation marks 415(of the first element 410) and 425 (of the second rotatable element 420)may be aligned (e.g., FIGS. 50E and 50F) to orient the first componentand the second component of the robotic system in a desired orientationand further lock the elements 410 and 420 in the desired orientation.

Referring to FIG. 50G, upon assembling the elements 410 and 420, anelectrical connector can be housed between the first rotatable element410 and the second rotatable element 420. For example, the electricalconnector can be housed inside a hollow space between elements 410 and420. In an embodiment, the electrical connector establishes anelectrical connection between the first component and the secondcomponent of the robotic system when the first rotatable element 410 andthe second rotatable element 420 are in the locked state.

In an embodiment, the electrical connector (e.g., including PCBsdiscussed earlier) comprises a pin element 954 including a plurality ofpins; and the track element 982 having a plurality of trackscorresponding to the plurality of pins of the pin element. In anembodiment, the plurality of pins and the plurality of tracksestablishing an electrical connection when the first rotatable element410 and the second rotatable element 420 are in the locked state therebyallowing electrical signals to be exchanged between the first componentand the second component of the robotic system. An example of theelectrical connector is further discussed in detail in the Indian patentApplication 201811047472 filed on Dec. 14, 2018, which is incorporatedherein in its entirety by reference.

It can be understood by a person skilled in the art that thefunctionality of the rotatory connector is not limited to structuralfeatures discussed with respect to FIGS. 50A-50J. A person skilled inthe art can perform various design variations of the rotatoryconnections. For example, FIGS. 51A and 51B illustrate example designvariations of the rotatory connector.

In FIG. 51A, the rotatory connector 40B includes the first rotatableelement 410B configured to rotatably couple to the second rotatableelement 420B. Further, a locking element 430B may be included betweenthe elements 410B and 420B. The locking element 430B is configured toinclude radially oriented ribs that can sit in radially oriented slotsalong the circumference of the second rotatable element 420B. In anembodiment, for locking, the ribs of the locking elements 430B engagesin the slots of the second rotatable element 420B thereby locking therotatable element 420B in a desired orientation (e.g., at 0°, 90°, 180°,and 270°). In an embodiment, the markers may not be included on thefirst rotatable and the second rotatable elements, instead the lockingelement 430B (e.g., its ribs) itself can serve as an orientation guide.For example, the locking elements 430B prevent locking of the elements410B and 420B when not in desired orientation, as the ribs will notengage with the slots of the second rotatable element 420B.

FIG. 51B show another example design variation of a rotatory connector(e.g., 40C), where a separate locking element (e.g., like 430B in FIG.51A) is not included. In an embodiment, the locking and orientationfeatures can be accomplished by structural features of a first rotatableelement 410C and a second rotatable element 420C itself.

In an embodiment, the rotatory connector 40C includes the firstrotatable element 410C configured to rotatably couple to the secondrotatable element 420C. The coupling involves orienting the element 420Cin a desired orientation and locking the element 420C with the element410C. In an embodiment, the first rotatable element 410C is configuredto include radially oriented slots that can receive radially orientedribs along the circumference of the second rotatable element 420B. In anembodiment, for locking, the slots of the element 410C engages in theribs of the second rotatable element 420C thereby locking the rotatableelement 420B in a desired orientation (e.g., at 0°, 90°, 180°, and270°). In an embodiment, the markers may or may not be included on thefirst rotatable and the second rotatable elements. For example, the ribsand slots may be oriented at specific degrees such that together theycan serve as an orientation guide.

In an embodiment, the rotatory connector 40 can be modified to includestructural elements like ribs to further strength the rotatoryconnector. In an embodiment, tolerances between movable elements may beadjusted to allow free relative motion between elements of the rotatoryconnector.

FIGS. 52A-52L illustrate a slidable connector 60 is configured to couplecomponents of a robotic system in a desired linear position with respectto each other. For example, the slidable connector 60 couples the firstcomponent (e.g., the main component 100 in FIG. 47) to the secondcomponent (e.g., a sensor) in a sliding manner thereby allowing morepositional flexibility in configuration of the robotic system (e.g., arobotic toy such as a car, monkey, or other toy configurations).

In an embodiment, the slidable connector 60 includes a first slidableelement 610 coupled to a second slidable element 620 to allow slidingwith respect to each other. In an embodiment, the sliding of the secondslidable element 620 with respect to the first slidable element 610allows the slidable connector 60 to be configured in at least aL-configuration, a T-configuration or other configurations. In anyconfiguration, the slidable connector 60 serves multiple purposes. Forexample, firstly, the slidable connector 60 allows two robotic modulesto be connected to a single port (e.g., one of 910A-910J in FIG. 48) onthe main component 100. Secondly, the slidable connector 60 can functionas a variable slider that allows robotic module's location to be changedalong a sliding axis. Such adjustment feature can be utilized by, forexample, a sensor to adjust relative distance between the sensor and asurface being sensed by the sensor. For example, IR sensor configured todetermine a distance to a floor or other surfaces. According to anembodiment, example structural elements of the slidable connector 60 andhow such structural element cooperate to provide multiple functionalityto the slidable connector 60 is discussed as follows.

Referring to FIGS. 52A-52L, the slidable connector 60 includes the firstslidable element 610 that removably couples to the first component ofthe robotic system (e.g., the main component 100 in FIGS. 47 and 48);and the second slidable element 620 disposed perpendicular to the firstslidable element. In an embodiment, the second slidable element 620 isconfigured to slide to a desired position relative to the first slidableelement 610 and lock to the second slidable element 620 in the desiredposition. In an embodiment, the second slidable element 620 removablycouples to the second component (e.g., a sensor) of the robotic systemthereby allowing the second component be connected to the firstcomponent in the desired position.

Referring to FIG. 52A-52C, the first slidable element 610 has a firstface (e.g., a top face in x-y plane) including a ridge element 950(e.g., X-shaped) configured to couple the first component (e.g., themain component 100). Also, the first slidable element 610 has a secondface (see bottom view in FIG. 52H) configured to couple the secondslidable element 620. As shown in 6A-6C, the second slidable element 620is disposed perpendicularly (e.g., in z-direction) to a bottom face(e.g., opposite to the top face) of the first slidable element 610. Inan embodiment, the second element 620 includes two groove elements 910on opposite faces. However, the present disclosure is not limited to twogroove element (better seen in FIGS. 52E and 52F). A person skilled inthe art can modify the second slidable element 620 to include one grooveelement on one face and one ridge element on an opposite face, or tworidge element on opposite faces.

In an embodiment, the second slidable element 620 includes flexiblelocking members 621 and 622 (see FIGS. 52A-52D, 52G-52K). The flexiblelocking members are configured to: (i) unlock the second slidableelement 620 and allow sliding with respect to the first slidable element610 when the flexible locking members are compressed, and (ii) lock thesecond slidable element 620 in the desired position relative to thefirst slidable element 610 when the flexible locking members arereleased.

Referring to FIGS. 52A-52C, 52E and 52F, the second element 620 includesflexible locking members 621 and 622 that can be compress inwards tomove and change a location of the second element 620 to one of the 5locations P1, P2, P3, P4, and P5. Each position providing a differentconfiguration. FIG. 52E illustrates a T-configuration and FIG. 52Fillustrates an L-configuration. In an example, a sensor connection in aT-configuration may be at a first distance from a surface being sensed.In another example, a sensor connected in L-configuration may be at asecond distance (different from the first distance) from the surfacebeing sensed.

In an embodiment, the sliding functionality is achieved via a channeland a lip configuration (e.g., shown in FIG. 52H). In an embodiment, thefirst slidable element 610 includes a channel 612/613 (see FIG. 52H-52K)to guide a sliding motion of the second slidable element 620. Thechannel 612/613 is formed on a side opposite to where the firstcomponent (e.g., the main component 100) is coupled. For example, asshown in FIG. 52H, the channel 612/613 are formed at the bottom face ofthe first slidable element 610. For example, the channel 612/613 isformed along x-axis at the bottom face of the first slidable element610. Thus, the channel 612/613 can guide the second element 620 alongthe x-axis. In an embodiment, an edge of the channel 612/613 has theteeth 615 to enable locking of the second slidable element 620.

In an embodiment, the flexible locking members 621/622 includes a flangeportion 627/629 (see FIG. 52I) to allow sliding in the channel 612/613without separating the second slidable element 620 from the firstslidable element 610. For example, the flange portion 627/629 preventsseparation in the z-direction or perpendicular to sliding direction(e.g., x-direction). In an embodiment, the flexible locking members621/622 may include ridges or a rough surface for gripping purposes. Forexample, the ridges prevent fingers of a user from slipping along smoothcorners of the flexible elements 621/622 when compressed for sliding thesecond slidable element 620 in a desired position (e.g.,P1/P2/P3/P4/P5).

In an embodiment, the flexible locking members 621/622 includes a ridge626/628 at the flange portion 627/629. In an embodiment, the ridge626/628 is configured to: (i) engage with the teeth 615 of the firstslidable element 610 to lock the second slidable element 620 to thefirst slidable element 610 when the flexible locking members 621/622 isreleased; and (ii) disengage from the teeth 615 of the first slidableelement 610 to unlock the second slidable element 620 and allow slidingwith respect to the first slidable element 610 when the flexible lockingmember is compressed. For example, the ridge 626/628 enables locking ofthe second slidable element 620 in positions e.g., P1/P2/P3/P4/P5.

In an embodiment, the second slidable element 620 may be made of twomembers or portions. For example, as shown in FIGS. 52H, 52H, and 52I,the second slidable element 620 includes a locking member 620A and acover member 620B. The locking member 620A includes the flexible lockingmembers at a circumference and a groove at a first side where the ridgeelement of the second component is received. The cover member 620B iscoupled to a second side of the locking member 620A, the second sidebeing opposite to the first side. In an embodiment, the cover member620B further comprises a groove (e.g., X-shaped depression) at a firstside where the ridge element (e.g., X-shaped raised portion) of thesecond component (e.g., the drive motor 200) can be received. In anembodiment, the first slidable element 610 includes position markings ata circumference parallel to the channel A position marking (e.g., P1-P5)is indicative of the desired positions.

In an embodiment, the first slidable element 610 has a ridge 650configured to be inserted in a groove (e.g., 910) of the first component(e.g., the main component 100 in FIGS. 47 and 48) of the robotic systemThe second slidable element 620 has a groove 910 configured to receive aridge of the second component (e.g., a sensor) of the robotic system. Inan embodiment, the groove is an X-shaped depressed portion depressedinward relative to a face of the respective slidable element, and theridge is an X-shaped protruding portion protruding outward relative to aface of the respective components, the X-shape of the ridge correspondsto the X-shape of the groove.

FIG. 52M illustrates the slidable connector 60 having modifiedstructural features for improve flexibility and/or strength of theelements. For example, the second slidable element 620M can be modifiedat the flexible locking members 621/622 to include ribs 651/652 formedto improve strength of the flexible locking members 621/622.Furthermore, a relative thinner portion 655 may be formed at the members621/622 to improve the flexibility of the members 621/622. For example,the relative thinner portion 655 has relatively less thickness than thesurrounding portions. A person skilled in the art can make similarstructural modification to improve other strength, flexibility ormovability of the elements of the slidable connector 60.

FIGS. 53A and 53B illustrate a design variation of a slidable connector60′. In an embodiment, the slidable connector 60′ includes a differentlocking member 620A′ and a cover member 620B′. The locking member 620A′includes spring portions 721 and 722 that can be compressed by pressingsides 621′ and 622′. In an embodiment, the spring portions 721 and 722are thin curved element that are flexible enough to compress againsteach other. In an embodiment, the other structural elements (e.g.,channels, ribs, lips, etc.) may be similar to that of the slidableconnector 60 so that the second slidable element 620 can be positionedin a desired position, as discussed above. The present disclosure is notlimited to the structural elements discussed herein. For example, aperson skilled in the art may adopt other existing sliding, or lockingmechanisms.

FIG. 54A-54C illustrate an example skin connector used to connect a skinor aesthetic cover to a robotic module. A skin refers to one or morecover pieces or an aesthetic body shaped to give the robotic system ortoy a desired aesthetic look. For example, the skin can be a coverconfigured to look like a car, a satellite or other objects of interest.FIGS. 55A and 55B illustrate examples of skins connected to the roboticsystem (e.g., of FIG. 47) to look like a rickshaw (9A) or a satellite(FIG. 55B). Such skins can serve as a visual teaching aid to explainfunctioning and programing of complex machines in a simplified manner,particularly for kids or a beginner of any age. Such skins can be madeof flexible materials like corrugated board, cardboard, foam board,cloth, plastic, thin metal sheets, or other shape forming materials tomake models/shapes from imagination. It enables a user (e.g., a kid orbeginner) to customize their robotic toy and enhance their learningexperience. In an embodiment, the skin connector 80 allows connectionwith a skin (interchangeably referred as a model, shape, or cover).

FIG. 54A shows a perspective view showing a top face of the skinconnector 80. FIG. 54B is another perspective view showing a bottom faceof the skin connector 80. FIG. 54C is a front view (or elevation view)of the skin connector 80. In an embodiment, the skin connector 80 isconfigured to couple any flexible material. In an embodiment, the skinconnector includes snap fit clips that can be inserted into a cut cavityon skins to hold together models and the robotic toy. It can beunderstood by a person skilled in the art, depending on the material(e.g., hard, soft, flexible, etc.) to be attached as cover, the skinconnector may include different attaching means such as U-shaped clips(as shown), V-shaped clips, Velcro, adhesive strips, or other similarmeans of attachment. The present embodiment, is not limited to aparticular attachment means.

In an embodiment, the skin connector 80 includes a ridge 950 (see FIG.54A) configured to insert in a groove element of the robotic toy (e.g.,shown in FIGS. 48 and 49). In an embodiment, one or more snap elements801/803 formed at an edge of the skin connector. The one or more snapelements are configured to snap fit in a cavity of a shaped coverthereby giving the robotic toy a desired toy form.

In an embodiment, the snap elements 801 and 803 project perpendicular(e.g., in z-direction) to a face (e.g., a top face) of the skinconnector. In an embodiment, the projecting direction of the snapelements 801/803 is vertically upward in FIGS. 54A and 54C or towardsright in FIG. 54B. In an embodiment, the ridge 950 projects verticallydownwards in FIGS. 54A and 54C, or towards the left in FIG. 54C. In anembodiment, the snap elements 801/803 are cantilever type of the snapelements.

The skin connector 80 connects to the robotic modules (e.g., components100-800 discussed earlier). Accordingly, the ridge 950 is formed tocooperate with the groove element of the robotic module. In anotherembodiment, instead of ridge 950, a groove 910 may be formed configuredto cooperate with the ridge element of the robotic module. Hence, in anembodiment, the ridge 950 may be an X-shaped protruding portionprotruding outward relative to a face of the respective components, theX-shape of the ridge corresponds to the X-shape of the groove. In anembodiment, the groove may be an X-shaped depressed portion depressedinward relative to a face of the respective rotatable elements.

In an embodiment, a body 805 of the skin connector has a substantiallyrectangular or square shaped. As shown in FIGS. 54A and 54C, the body805 includes a raised portion 807 projecting from the top face. The snapelements 801/803 are formed at opposite edges of the body 805 such thatthe snap elements bends upward from the bottom face of the body 805(e.g., see FIG. 54C). Furthermore, the snap elements 801/803 extendsabove the raised portion 807, as see in FIG. 54C. In FIG. 54B, at thebottom side of the raised portion 807 there is a hollow portion or apocket wherein the ridge 950 is formed. In an embodiment, the ridge 950remains within the hollow portion without projecting outside the bottomface.

FIG. 54D is a perspective view of another example skin connector 80D.The skin connector 80D comprises a top plate 801 configured to lock witha bottom plate 803. For example, the top plate 801 may include holesconfigured to receive projections (e.g., cylinders) formed on the bottomplate 803. A skin 802 made of any material (e.g., cardboard, plastic,metal, etc.) may be disposed between the top plate 801 and the bottomplate 803. For example, a portion of the skin 802 may be cut out (e.g.,holes or squares) that allow the projections formed on the bottom plate803 to pass through the cut out of the skin 802 and connect to the holesof the top plate 801. Thus, the skin 802 is sandwiched between the topplate 801 and the bottom plate 803. In an embodiment, the bottom plate803 may be configured to include a joinery (not shown, but examplesincludes X-shaped ridge or groove as discussed herein) compatible withthe robotic module (e.g., the main component 100 and the drive motor200) of a robotic system or toy (e.g., in FIG. 1).

In another example, a bottom plate and a top plate may be have adifferent fastening mechanism that enables sandwiching a skin betweenthe bottom plate and the top plate. For example, in FIG. 54E, a skinconnector 80E has a screw and nut type of fastening. For example, abottom plate 848 includes a screw type projection and the top plateincludes holes having a threads compatible with the screw projection ofthe bottom plate 848.

FIG. 54F is a cross-section view of yet another example skin connector80E. In an embodiment, the skin connector 80E includes a sticking layer851 and 852 (e.g., VELCROW or an adhesive layer) at an outer face towhich a skin can be attached. An inner face of the skin connector 80E isa face at which a joinery is included to attach to a robotic module(e.g., the main component 100, the drive component 200, etc.).

In an embodiment, there is provided an interface (e.g., FIGS. 10A-10D)between two different interlocking toy systems. The interface is a platehaving different type of interlocking elements on a first face and asecond face (opposite to the first side), respectively. In anembodiment, the interface includes a plurality of connecting elements,formed on a first face, having a first geometric configurationcompatible with one or more pieces of a first interlocking toy system;and a joinery, formed on a second face, having a second geometricconfiguration compatible with a second interlocking toy system, theinterface enabling an interoperable connection between the firstinterlocking toy system and the second interlocking system. For example,the first interlocking toy system can be a LEGO toy system includingbricks, gears, shafts, etc. that are interconnected to build a toy. Thesecond interlocking toy system can be the robotic system or robotic toyof FIG. 47. In an embodiment, the interface is referred as a LEGOconnector and discussed in detail as follows.

FIGS. 56A-56D illustrate example LEGO connector 1000 configured toattach to a component (e.g., main component 100, the drive motor 200,etc.) a robotic toy e.g., of FIG. 47. FIG. 56A illustrates a perspectiveview showing a first side of the LEGO connector 1000 includingconnecting elements (e.g., 1001 a, 1001 b, and 1001 c) compatible with aLEGO piece (not shown). FIG. 56B is a plan view of the LEGO connector1000 viewed from the first side. FIG. 56C illustrates a perspective viewshowing a second side of the LEGO connector having a joinery (e.g., 950or 910) similar to that used in the robotic components (e.g., 100, 200,300, etc.) of the robotic system. FIG. 56D illustrates a plan view ofthe LEGO connector 1000 viewed from the second side.

In an embodiment, the LEGO connector 1000 is a plate having connectingelements configured to connect with one or more LEGO pieces (not shown)on one side and to a robotic component (e.g., the main component 100,the drive motor 200, etc.) on an opposite side. For example, as shown inFIGS. 56A and 56B, the LEGO connector 1000 includes a plurality ofconnecting element formed configured to interlock with a LEGO piece. Inan embodiment, the connecting elements can be studs (e.g., solidcylinders) or stud receptacles (e.g., hollow cylinders) protruding fromthe first side of the LEGO connector. For example, the connectingelements 1001 a, 1001 b, 1001 c are stud receptacles. In an embodiment,the stud receptacles can receive any LEGO piece having studs. To attachthe LEGO piece, the stud receptacles 1001 a, 1001 b, and 1001 c can bealigned with the studs of the LEGO piece (not shown) to be inserted inthe stud receptacles 1001 a, 1001 b, 1001 c. Thus, the LEGO connectorinterlocks with the LEGO piece via the one or more connecting elements.

In an embodiment, the connecting elements e.g., stud receptacles 1001 a,1001 b, 100 c may be formed only at specified locations (e.g., along theedge and at the center), while maintain a geometric configuration of theLEGO piece. For example, the geometric configuration comprises holediameters, distance between the connecting elements, height or depth ofthe connecting elements, or other geometric properties related to theLEGO piece.

In an embodiment, the connecting elements include one or more plusshaped holes (e.g., 1003 a-1003 d) configured to attached a LEGO piece,where the LEGO piece may be an axle or a shaft. In an embodiment, theplus shaped holes 1003-1003 d may be formed at corners of the LEGOconnectors. In an embodiment, the distance between the plus shaped holes1003 a and the surrounding stud receptacles e.g., 1001 a can be same asa the LEGO piece having the studs and axle portions. In an embodiment,the plus shaped holes may be used to connect the LEGO axle (not shown)on one side and the joinery can connect to the drive motor 200 (not showin FIGS. 56A-56D) on the opposite side. Furthermore, the LEGO gears canbe connected to the LEGO axle. Thus, a rotation motion of the drivemotor 200 may be transmitted to a toy configuration made of LEGO pieces.

Referring to FIGS. 56C and 56D, at the second side (opposite to thefirst side), the LEGO connector includes the joinery (e.g., 950 or 910)configured to connect the robotic system. As discussed herein thejoinery includes an X-shaped ridge 950 or an X-shaped groove 910. Thus,the second side of the LEGO connector can be connected to a counter partjoinery on the robotic component. Hence, the LEGO connector establishesa connection between a robotic component of the robotic system (or arobotic toy) and one or more LEGO pieces.

In an embodiment, the LEGO connector can be used to generate toyappearances of desired shape by attaching one or more LEGO pieces to therobotic system. Furthermore, depending on type of robotic component, theLEGO piece attached thereto can be moved according to a movementprogramed in the robotic system. Thus, the LEGO connector can serve as amotion transmitting element for the LEGO pieces.

In an embodiment, the LEGO connector can be made of similar material(e.g., plastic, resin, etc.) as the robotic toy. Furthermore, the LEGOconnector may include chamfered edges and clearances so that the LEGOconnector can be easily removed and attached to the robotic component.

FIG. 57 illustrates an example interface 1100 that attaches LEGO pieces1101 and 1102 at corners of the interface 1100. For example, the LEGOpieces 1101 and 1102 are received in the stud receptacles at the cornersof the interface 1100.

To briefly summarize, the rotatory connector 40, the slidable connector60, and the skin connector 80 provides extended functionality (asdiscussed herein) to the robotic toy system (e.g., shown in FIG. 47).The robotic toy system of FIG. 47 is discussed in detail in the Indianpatent Application 201811047472.

As discussed earlier, for example, the rotatory connector 40 enablescoupling of an additional component (e.g., sensors 400-800, functionmotor 300) in a desired orientation to existing components of therobotic toy system. The additional component extends, for example, anoperating range of the robotic toy. In another example, the slidableconnector 60 enables coupling of one or more additional components(e.g., sensors) to a single port of the robotic toy. Further, theslidable connector 60 allows changing a position of the additionalcomponent, e.g., of a sensor to improve object detection or a sensingrange. Finally, the skin connector 80 enables coupling of differentskins to the robotic toy that can improve, a user's imagination ability,understanding ability related to a machine, or other educationalbenefits.

While the foregoing has described what are considered to constitute thepresent teachings and/or other examples, it is understood that variousmodifications may be made thereto and that the subject matter disclosedherein may be implemented in various forms and examples, and that theteachings may be applied in numerous applications, only some of whichhave been described herein. It is intended by the following claims toclaim any and all applications, modifications and variations that fallwithin the true scope of the present teachings.

The above disclosure also encompasses the embodiments noted below.

(1) A robotic system including a first housing comprising a firstprocessor and a first connector, a second housing comprising a secondprocessor and a second connector, the first connector of the firsthousing being connectable to the second connector of the second housingin a plurality of orientations relative to one another, wherein thefirst processor and the second processor are configured to communicatewith one other when connected in any of the plurality of orientations.

(2) The robotic system of feature (1), in which the first connectorcomprises a groove; and the second connector comprises a ridgecorresponding to the groove, the ridge comprising the plurality ofelectrical contacts, wherein the groove is configured to receive theridge and the plurality of electrical contacts in the plurality oforientations.

(3) The robotic system of feature (2), in which the first connectorfurther comprises a track element having a plurality of trackscorresponding to the plurality of contacts of the second connector,wherein the track element is located at a first side of the firstconnector and receives the plurality of the contacts of the secondconnector from a second side of the first connector, the second sidebeing opposite to the first side.

(4) The robotic system of features (1) to (3), in which the firstconnector comprising the track element is included in the first housingand the second connector is included in the second housing.

(5) The robotic system of features (1) to (4), in which the groove ofthe first housing is an X-shaped depressed portion depressed inwardrelative to a face of the first housing, and the ridge is an X-shapedprotruding portion protruding outward relative to a face of the secondhousing, the X-shape of the ridge corresponds to the X-shape of thegroove.

(6) The robotic system of features (1) to (5), in which the ridgereceives the plurality of electrical contacts in a form of pinsprojecting outward from the X-shaped protruding portion.

(7) The robotic system of feature (6), in which a number of pins is sixarranged linearly with an equidistance between adjacent pins.

(8) The robotic system of features (1) to (7), in which the grooveincludes a cut out portion at a bottom or a plurality of holesconfigured to receive the plurality of electrical contacts of the ridge.

(9) The robotic system of features (1) to (8), in which the groove isformed within a step portion relative to the face of the first housing.

(10) The robotic system of features (1) to (9), in which the ridge isformed within a pocket relative the face of the second housing.

(11) The robotic system of feature (10), in which the pocket is adepressed portion relative the face of the second housing.

(12) The robotic system of features (1) to (11), in which a height ofthe ridge is less than a depth of the pocket so defined that the ridgedoes not project relative to the face of the second housing.

(13) The robotic system of features (1) to (12), in which a depth of thegroove of the first housing is approximately the same as the height ofthe ridge of the second housing, so defined that when the groovereceives the ridge of the second housing, the face of the first housingand the face of the second housing touch each other.

(14) The robotic system of features (10) to (13), in which a height ofthe step portion of the first housing is less than the depth of thepocket of the second housing.

(15) The robotic system of features (1) to (14), in which the secondhousing is at least one of: a drive motor comprising a first motorconfigured to receive, via the second connector, a control signal fromthe first processor of the first housing; a function motor comprising asecond motor configured to receive, via the second connector, anothercontrol signal from the first processor of the first housing; a displaycomprising a screen configured to receive, via the second connector,information from the first processor of the first housing; or a sensorconfigured to generate an output signal corresponding to acharacteristic to be measured and send, via the second connector, theoutput signal to the first processor of the first housing.

(16) The robotic system of features (1) to (15), in which the sensor isat least one of: a color sensor, a touch sensor, an Infrared (IR)sensor, or a Light Dependent Resistor (LCR) sensor.

(17) The robotic system of feature (15), in which the drive motorcomprises at least one face including the ridge configured to connectwith the groove of the first housing.

(18) The robotic system of feature (15), in which the function motorcomprises at least one face including the ridge and at least one anotherface including the groove.

(19) The robotic system of feature (15), in which the function motor iscube shaped having six faces, wherein each of five faces out of the sixfaces includes the ridge and one face includes the groove.

(20) The robotic system of feature (19), in which the face of thefunction motor including the groove is connected to a shaft of thesecond motor.

(21) The robotic system of features (1) to (20), in which the secondhousing includes an unique electrical characteristic.

(22) The robotic system of feature (21), in which the unique electricalcharacteristic is a resistor having a particular resistance value.

(23) The robotic system of feature (21), in which the first processor isfurther configured to identify the second housing based on theelectrical characteristic of the second housing when connected to thefirst housing.

(24) The robotic system of feature 21, in which the first processor isfurther configured to: identify the second housing and an orientation ofthe plurality of the orientations of the second housing relative to thefirst housing based on an address of the second housing and theorientation; and articulate the second housing, wherein the identifiedsecond housing is the drive motor or the function motor.

(25) A method for configuring a robotic module comprising a processor,the method including connecting the robotic module to a first housing;and assigning, via the processor, an identifier to the robotic module,wherein the identifier is configured to identify a type of the roboticmodule, a number of the robotic module, and/or a location of the roboticmodule with respect to the first housing.

(26) The method of feature (25), in which the assigning of theidentifier includes assigning a first set of bits of a plurality of bitsto identify the type of the robotic module, and a second set of bits ofthe plurality of bits to indicate the number the particular component.

(27) The method of feature (25), in which the assigning of theidentifier includes daisy chaining of the plurality of bitscorresponding to a plurality of robotic modules connected to the firsthousing and/or a robotic module of the plurality of robotic modules.

(28) A method of programming related to a robotic module, the methodincludes selecting, via an interface, i) a predefined function to beperformed by the robotic module, or ii) an option to create a userdefined function to be performed by the robotic module; defining, viathe interface, logic and parameters related to the user defined functionof the robotic module; and storing, via a processor, the user definedfunction in a processor of a first housing, in which the processor isconfigured to control the robotic module based on the user-definedfunction when the robotic module is connected, via a joinery, to theprocessor, and in which the joinery establishes an electrical connectionbetween the first housing and the robotic module.

(29) The method of feature 28, in which the defining the logic involvesdragging and dropping of a plurality of pre-defined coding blocks withina programming screen on the interface, and defining the parametersincludes assigning values to variables related to the robotic module.

(30) The method of feature 29, in which the robotic module is a drivemotor or a function motor, and the parameters comprise a speed, anamount of rotation, and/or a direction of rotation of the drive motor orthe function motor.

(31) An communication protocol circuitry, including a printed circuitboard including a two-wired interface to communicate information from afirst processor to a second processor when connected to the firstprocessor via a connector, in which the connector establishes anelectrical connection between the first processor and the secondprocessor.

1-67. (canceled)
 68. A robotic system comprises: a first componentcomprising a first processor and a first connector; a second componentcomprising a second processor and a second connector; and a skinconnector configured to couple the first component and/or the secondcomponent to attach a shaped cover; wherein the first connector of thefirst component is connectable to the second connector of the secondcomponent in a desired orientation relative to one another, wherein thefirst processor and the second processor are configured to communicatewith one other when connected in the desired orientation.
 69. Therobotic system according to claim 68, wherein the skin connectorcomprises: a ridge configured to insert in a groove element of therobotic system; and one or more snap elements formed at edges of theskin connector, the one or more snap elements configured to be snap fitin a cavity of a shaped cover thereby giving the robotic system adesired toy form.
 70. The robotic system according to claim 69, whereinthe one or more snap elements project perpendicular to a first face ofthe skin connector in a first direction, the first direction beingopposite to a projecting direction of the ridge.
 71. The robotic systemaccording to claim 70, wherein the one or more snap elements are acantilever type of elements.
 72. The robotic system according to claim70, wherein a body of the skin connector has a substantially rectangularor square shaped.
 73. The robotic system according to claim 72, whereinthe body includes a raised portion, the raised portion being raised withrespect to the first face, and wherein the raised portion includes ahollow portion in which the ridge is formed.
 74. The robotic system ofclaim 68, wherein the first connector comprises a groove; and the secondconnector comprises a ridge corresponding to the groove, the ridgecomprising a plurality of electrical contacts, wherein the groove isconfigured to receive the ridge and the plurality of electrical contactsin a plurality of orientations.
 75. The robotic system of claim 74,wherein the first connector further comprises a track element having aplurality of tracks corresponding to the plurality of contacts of thesecond connector, wherein the track element is located at a first sideof the first connector and receives the plurality of the contacts of thesecond connector from a second side of the first connector, the secondside being opposite to the first side.
 76. The robotic system of claim75, wherein the first connector comprising the track element is includedin a first housing and the second connector is included in a secondhousing.
 77. The robotic system of claim 76, wherein the groove of thefirst housing is an X-shaped depressed portion depressed inward relativeto a face of the first housing, and the ridge is an X-shaped protrudingportion protruding outward relative to a face of the second housing, theX-shape of the ridge corresponds to the X-shape of the groove.
 78. Therobotic system of claim 76, wherein the second housing is at least oneof: a drive motor comprising a first motor configured to receive, viathe second connector, a control signal from the first processor of thefirst housing; a function motor comprising a second motor configured toreceive, via the second connector, another control signal from the firstprocessor of the first housing; a display comprising a screen configuredto receive, via the second connector, information from the firstprocessor of the first housing; and a sensor configured to generate anoutput signal corresponding to a characteristic to be measured and send,via the second connector, the output signal to the first processor ofthe first housing.
 79. The robotic system of claim 78, wherein the firstprocessor is further configured to: identify the second housing and anorientation of the plurality of the orientations of the second housingrelative to the first housing based on an address of the second housingand the orientation; and articulate the second housing, wherein theidentified second housing is the drive motor or the function motor. 80.A robotic system comprises: a first interlocking toy system comprising:a plurality of pieces configured to interlock with each other via afirst interlocking mechanism; a second interlocking toy system having asecond interlocking mechanism comprising: a first component comprising afirst processor, and a second component comprising a second processor,the second component interoperably connected to the first component, andwherein the first processor communicates with the second processor tosend receive control signals or sensor signal therebetween; and aninterface configured to couple, via the second interlocking mechanism atone face, the first component and/or the second component, and couple,via the first interlocking mechanism at another face, at least one pieceof the plurality of pieces of the first interlocking toy system atanother face to allow interoperability between the first interlockingtoy system and the second interlocking toy system.
 81. The roboticsystem according to claim 80, wherein the interface comprises: aplurality of connecting elements, formed on a first face, having a firstgeometric configuration compatible with one or more pieces of a firstinterlocking toy system; and a joinery, formed on a second face, havinga second geometric configuration compatible with the second interlockingtoy system, the interface enabling an interoperable connection betweenthe first interlocking toy system and the second interlocking toysystem.
 82. The robotic system according to claim 81, wherein theplurality of connecting elements are studs and/or stud receptaclesarranged in the first geometric configuration.
 83. The robotic systemaccording to claim 82, wherein the plurality of connecting elements havegeometric configuration compatible with the studs and/or studreceptacles of the one or more pieces of the first interlocking toysystem.
 84. The robotic system according to claim 81, wherein thejoinery includes an X-shaped ridge or an X-shaped groove arranged in thesecond geometric configuration.
 85. A method for configuring a roboticmodule comprising a processor, the method comprising: connecting therobotic module to a first housing; and assigning, via the processor, anidentifier to the robotic module, wherein the identifier is configuredto identify a type of the robotic module, a number of the roboticmodule, and/or a location of the robotic module with respect to thefirst housing.
 86. The method of claim 85, wherein the assigning of theidentifier comprises: assigning a first set of bits of a plurality ofbits to identify the type of the robotic module, and a second set ofbits of the plurality of bits to indicate the number a particularcomponent.
 87. The method of claim 86, wherein the assigning of theidentifier comprises: daisy chaining of the plurality of bitscorresponding to a plurality of robotic modules connected to the firsthousing and/or a robotic module of the plurality of robotic modules.